获取包名称

时间:2016-04-07 14:38:54

标签: android

有人可以解释一下为什么当我使用这段代码时,我没有得到完整的包名?

例如,不要这样做:com.android.phone.EmergencyDialer.DIAL

我只获得com.android.phone

如何修复此问题并获取完整的软件包名称?

final ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
final List<ActivityManager.RunningTaskInfo> recentTasks = activityManager.getRunningTasks(Integer.MAX_VALUE);

for (int i = 0; i < recentTasks.size(); i++)
{
    Log.d("Executed app", "Application executed : " +recentTasks.get(i).baseActivity.getPackageName()+ "\t\t ID: "+recentTasks.get(i).id+"");
}

谢谢。

1 个答案:

答案 0 :(得分:0)

从ActivityManager中获取com.android.phone.EmergencyDialer.DIAL是不可能的,因为com.android.phone是实际的包名,com.android.phone.EmergencyDialer.DIAL是针对EmergencyDialer类的intent操作的字段。 / p>

请参阅:https://android.googlesource.com/platform/packages/services/Telephony/+/idea133/src/com/android/phone/EmergencyDialer.java

你需要提供一个更好的例子来说明你在这里要完成的事情,但是再次,从ActivityManager类中获取DIAL变量是不可能的,因为com.android.phone.EmergencyDialer.DIAL不是,并且将会永远不是一个有效的运行任务。