Как отключить/включить приемник Android в исходном коде?

У меня есть вопрос об Android Receiver. Я могу изменить системное приложение. B — это первое приложение, когда пользователь включает питание. Но проблема в том, что когда пользователь выбирает ЗАВОДСКОЙ режим (например, настройку языка, идентификатора Google...), приложение B должно быть запущено для завершения настройки приложения A. Вот почему используйте android:enabled="false" и приложение A, запускающее приложение B. Но не работает.

Я думаю, что «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 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>

Приложение Б

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);
}

person user3796216    schedule 20.04.2015    source источник
comment
Вы можете использовать метод по умолчанию registerReceiver() и deregisterReceiver. Для получения дополнительной информации см. это: stackoverflow.com/questions/4134203 /   -  person uniruddh    schedule 20.04.2015


Ответы (1)


Почему бы вам просто не запустить приложение B напрямую из приложения A? Да, загрузка завершена срабатывает только один раз. Но вы можете запустить приложение B без каких-либо приемников, посмотрите здесь, например

person Raiv    schedule 20.04.2015