-1

我有一个关于 Android Receiver 的问题。我可以更改系统应用程序。B是第一个应用程序,当用户打开电源时。但问题是当用户选择FACTORY Mode(如设置语言,google id...)时,必须启动B App完成A App设置。这就是为什么使用 android:enabled="false" 和 A App trigger B app。但不工作。

我认为“android.intent.action.BOOT_COMPLETED”在启动后只发送一次,所以在更改启用接收器 B 应用程序后,它不起作用。这样对吗?请问你能给我一些建议吗?

一个应用程序

PackageManager pm = getPackageManager();
ComponentName compName = new ComponentName("com.test.myapp", "com.test.myapp.receiver");
pm.setComponentEnabledSetting(compName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 0);

B App AndoidManifest.xml

<receiver 
    android:name="com.test.myapp.receiver"
    android:enabled="false">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>

B应用

public void onReceive(Context context, Intent intent) {
    if(Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())){
       Intent startMainActivityIntent = new Intent(context, new.class);
       startMainActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
       context.startActivity(startMainActivityIntent);
}
4

1 回答 1

0

为什么不直接从应用 A 启动应用 B?是的,启动完成只触发一次。但是您可以在没有任何接收器的情况下启动应用程序 B,例如看这里

于 2015-04-20T08:08:24.310 回答