我正在使用自定义键盘,键盘打开时我需要当前的包名称。这个键盘将打开不同的应用程序,所以我需要当前打开的应用程序包名称。 我正在使用以下代码,但它无法正常工作。
ActivityManager am = (ActivityManager) this
.getSystemService(Activity.ACTIVITY_SERVICE);
String packageName = am.getRunningTasks(1).get(0).topActivity
.getPackageName();
答案 0 :(得分:2)
我知道这太晚了但是上面的答案没有用,我找到了正确的答案,所以我写了这个,
ActivityManager mActivityManager = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);
if(Build.VERSION.SDK_INT > 20){
String mPackageName = mActivityManager.getRunningAppProcesses().get(0).processName;
}
else{
String mPackageName = mActivityManager.getRunningTasks(1).get(0).topActivity.getPackageName();
}
答案 1 :(得分:1)
ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);
Log.d("topActivity", "CURRENT Activity ::" + taskInfo.get(0).topActivity.getClassName());
ComponentName componentInfo = taskInfo.get(0).topActivity;
String packageName = componentInfo.getPackageName();
您的清单上需要以下权限:
<uses-permission android:name="android.permission.GET_TASKS"/>