Получение событий установки и удаления пакета

Я пытаюсь определить, когда устанавливается новое приложение, но только если мое приложение запущено. Мне удалось обнаружить установку приложения, создав BroadcastReceiver и активировав его в файле AndroidManifest, но это обнаружит, даже если мое приложение закрыто. Вот почему мне нужно вручную активировать и деактивировать BroadcastReveiver. Для этого у меня есть этот код:

br = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        Log.i("Enter", "Enters here");
        Toast.makeText(context, "App Installed!!!!.", Toast.LENGTH_LONG).show();
    }
};
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_PACKAGE_ADDED);
intentFilter.addAction(Intent.ACTION_PACKAGE_INSTALL);
registerReceiver(br, intentFilter);

Это должно вызывать всплеск при установке нового приложения. Но, к сожалению, это не так. Он не входит в метод onReceive. Любая помощь приветствуется.

51
задан Jared Rummler 17 April 2016 в 03:11
поделиться

1 ответ

Этот код для REMOVED_APPLICATION.

С ниже кода, U не должен был Использовать декларацию. Только в Вашем Java Класс Пишут Этот код.

 BroadcastReceiver  uninstallApplication = new BroadcastReceiver() {

      @Override
      public void onReceive(Context context, Intent intent) {

        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
          String packageName = Objects.requireNonNull(intent.getData()).getEncodedSchemeSpecificPart();

       Toast.makeText(context, "USER UNINSTALL : " + packageName, Toast.LENGTH_SHORT).show();




        }
      }
    };
    IntentFilter intentFilter = new IntentFilter();
    intentFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
    intentFilter.addDataScheme("package");
    registerReceiver(uninstallApplication, intentFilter);
1
ответ дан 7 November 2019 в 09:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: