And*_*rea 6 android android-intent robotium android-notifications android-activity
我是使用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
Run Code Online (Sandbox Code Playgroud)
我知道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();
}
Run Code Online (Sandbox Code Playgroud)
实际上显示了活动,但它与我通过手动调用它获得的不同.我认为在我传递的上下文中有问题,或者我调用挂起的意图的方式.
关于这个问题的任何提示?有没有更好的方法来模拟通知点击?
请在另一个 stackoverflow 问题中找到很好的讨论和一些选项:
Can I test status bar notification using Android's testing Framework?
由于您已经有了启动意图的代码,因此不要尝试重新创建 notify() 调用将执行的操作,而是尝试添加一个特殊的活动来测试实际在通知上调用 notify() 的情况。
| 归档时间: |
|
| 查看次数: |
1977 次 |
| 最近记录: |