Я работаю с пользовательской клавиатурой, мне нужно имя текущего пакета, когда клавиатура открыта. Эта клавиатура будет открыта с различными приложениями, поэтому мне нужно, чтобы это имя приложения было открыто в настоящее время. Я использую следующий код, но он работает неправильно.Android получить имя пакета текущего открытого приложения
ActivityManager mActivityManager = (ActivityManager)PhotoActivity.this.getSystemService(Context.ACTIVITY_SERVICE);
if(Build.VERSION.SDK_INT > 20){
String mPackageName = mActivityManager.getRunningAppProcesses().get(0).processName;
Log.e("Checking package: ","Checking current application package"+mPackageName);
}
else{
String mPackageName = mActivityManager.getRunningTasks(1).get(0).topActivity.getPackageName();
}
Это дубликат около тысячи вопросов. FYI, взлом, который вы используете, был сломан в Android 5.1.1 и 6.0. Официально санкционированная замена - это API статистики использования, но он недоступен на всех устройствах. –