Android BroadcastReceiver не работает, когда приложение закрыто - PullRequest
0 голосов
/ 24 февраля 2020

Я хочу написать сервис, который будет запускаться при установке нового приложения. Прежде всего, я думаю, что мне нужен приемник вещания. Приемник вещания не работает, когда приложение закрыто. Я пробую Android 7.0 и 8.1

Что я делаю не так?

Я пробовал это решение: Android Broadcast Receiver не работает в фоновом режиме

И это решение: Android Приложение BroadcastReceiver не d ie, когда приложение закрыто

compileSdkVersion 28
minSdkVersion 16
targetSdkVersion 28

Мой BroadcastReceiver

public class IsPackageAdded extends BroadcastReceiver {
    public static boolean isAdded = false;
    public static boolean isRemoved = false;
    Context context;
    private static final String TAG = "IsPackageAdded";

    @Override
    public void onReceive(Context paramContext, Intent paramIntent) {
        this.context = paramContext;
        if (paramIntent.getAction().equals("android.intent.action.PACKAGE_REMOVED")) {
            isRemoved = true;
            String packageName = paramIntent.getData().getSchemeSpecificPart();
            Log.d(TAG,"Successfully uninstalled: " + packageName);
            Toast.makeText(context, "Successfully uninstalled: "+packageName, Toast.LENGTH_LONG).show();

        }
        while (!paramIntent.getAction().equals("android.intent.action.PACKAGE_ADDED")) {
            return;
        }
        String packageName = paramIntent.getData().getSchemeSpecificPart();
        Log.d(TAG,"Successfully installed: " + packageName);
        Toast.makeText(context, "Successfully installed: "+packageName, Toast.LENGTH_LONG).show();
        isAdded = true;
    }
}

Мой манифест

<application>
...
    <receiver
        android:name="com.sdatam.catcher.classes.IsPackageAdded"
        android:enabled="true"
        android:exported="true"
        >
        <intent-filter android:priority="1000">
            <action android:name="android.intent.action.PACKAGE_ADDED" />
            <action android:name="android.intent.action.PACKAGE_REMOVED" />
            <data android:scheme="package" />
        </intent-filter>
    </receiver>
...
</application>

В другой статье говорится, что я должен добавить эту строку в манифест:

android:permission="android.permission.BROADCAST_PACKAGE_ADDED"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...