【发布时间】:2018-06-19 19:22:32
【问题描述】:
我有两个应用都启用了自助服务终端模式。我目前从一个发送一个广播到另一个传输数据。我想告诉接收应用程序开始一个新活动。
在大多数情况下,我可以使用 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);但是...在自助服务终端模式下,我无法开始新任务。
这是我在广播接收器中的内容(我已验证它适用于其他数据)。此代码尝试启动一个新活动:
Intent launchIntent = new Intent(Intent.ACTION_MAIN);
launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // this doesn't work in kiosk mode...
launchIntent.setComponent(new ComponentName("my.package","my.package.myactivity"));
try {
if(launchIntent != null) {
context.getApplicationContext().startActivity(launchIntent);
Log.i(TAG, "Started activity");
} else
Log.i(TAG, "Intent is null");
} catch (Exception e) {
Log.e(TAG, e.toString());
}
我在添加标志之前的错误:
Kiosk Mode: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
加上flag之后:
E/ActivityManager( 470): Attempted Lock Task Mode violation
是否可以通过广播接收器发送上下文,以便我可以使用该上下文启动所需的活动?除了使用广播开始新活动之外,任何人都可以提出其他方法吗?
【问题讨论】:
标签: android android-intent kiosk-mode