在android源码中获取选择器活动名称

时间:2013-03-14 07:26:50

标签: android

在我的应用程序中,我正在检查后台服务中的顶级活动名称并调用一个函数,如果top活动不是默认情况下android中的Chooser活动。我发现活动名称为“ com.android.internal.app.ChooserActivity ”。所以我很难编码并检查。一切都很好。但是当活动名称发生变化时会发生什么(由谷歌改变)。所以我的问题是,有没有办法在运行时获得选择器活动?

1 个答案:

答案 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”