I sono black-box per provare un'applicazione utilizzando Robotium framework. L'app in prova invia una notifica nella barra di stato ogni volta che installo una nuova applicazione. Vorrei fare clic su quella notifica, ma non ho ancora trovato un modo corretto per farlo.Fare clic programmaticamente su Notifica Android
Quando clicco manualmente su una notifica ottengo questo logcat
linee:
I/ActivityManager( 148): START {flg=0x14000000 cmp=com.test.package/.activity.FrontActivity bnds=[0,38][240,86] (has extras) u=0} from pid -1
I/ActivityManager( 148): START {flg=0x14000000 cmp=com.test.package/.activity.ResultActivity u=0} from pid 8600
I/ActivityManager( 148): Displayed com.test.package/.activity.FrontActivity: +1s183ms
I/ActivityManager( 148): Displayed com.test.package/.activity.ResultActivity: +744ms
So Robotium non può testare 2 diverse applicazioni allo stesso tempo, così come so che non è possibile ottenere la notifica di un'applicazione esterna.
Ho anche cercato di ottenere l'intento sospeso e accenderlo utilizzando il seguente codice:
Context context = this.getInstrumentation().getTargetContext().getApplicationContext();
String intentClassString = "com.test.package.activity.FrontActivity";
Class<?> intentClass = null;
try {
intentClass = Class.forName(intentClassString);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Intent intent = new Intent(context, intentClass);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_NO_CREATE);
try {
pendingIntent.send();
} catch (CanceledException e) {
e.printStackTrace();
}
L'attività è in realtà ha dimostrato, ma è diverso da quello che posso ottenere invocando manualmente. Penso che qualcosa sia sbagliato nel contesto in cui passo, o nel modo in cui chiamo l'intento in sospeso.
Qualche suggerimento su questo problema? C'è un modo migliore per simulare il clic su una notifica?