Я пытаюсь определить, когда устанавливается новое приложение, но только если мое приложение запущено. Мне удалось обнаружить установку приложения, создав 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. Любая помощь приветствуется.
Этот код для 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);