我正在使用Robotium 框架对应用程序进行黑盒测试。每次安装新应用程序时,被测应用程序都会在状态栏中发送通知。我想单击该通知,但我仍然没有找到合适的方法来执行此操作。
当我手动单击一个通知时,我得到以下logcat
几行:
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
我知道 Robotium 不能同时测试 2 个不同的应用程序,而且我知道您无法收到外部应用程序的通知。
我还尝试使用以下代码获取待处理的意图并启动它:
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();
}
该活动实际上已显示,但它与我通过手动调用它获得的不同。我认为在我传递的上下文或我调用未决意图的方式中有问题。
关于这个问题的任何提示?有没有更好的方法来模拟点击通知?