在我的应用程序中,我正在检查后台服务中的顶级活动名称并调用一个函数,如果top活动不是默认情况下android中的Chooser活动。我发现活动名称为“ com.android.internal.app.ChooserActivity ”。所以我很难编码并检查。一切都很好。但是当活动名称发生变化时会发生什么(由谷歌改变)。所以我的问题是,有没有办法在运行时获得选择器活动?
答案 0 :(得分:0)
在后台服务中运行一个线程,通过ApplicationManager获取活动的顶部,然后您可以在运行时比较活动的顶部。
ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
// get the info from the currently running task
List< ActivityManager.RunningTaskInfo > taskInfo = am.getRunningTasks(1);
Log.d("topActivity", "CURRENT Activity ::"
+ taskInfo.get(0).topActivity.getClassName());
ComponentName componentInfo = taskInfo.get(0).topActivity;
componentInfo.getPackageName(); 您需要在清单上获得以下权限:
uses-permission android:name =“android.permission.GET_TASKS”