Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 获取包名_Android - Fatal编程技术网

Android 获取包名

Android 获取包名,android,Android,有人能解释一下为什么我使用这段代码时没有得到完整的包名吗 例如,不要得到这个:com.android.phone.EmergencyDialer.DIAL 我只有com.android.phone 如何修复此问题并获得完整的包名 final ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); final List<ActivityManager.Run

有人能解释一下为什么我使用这段代码时没有得到完整的包名吗

例如,不要得到这个:
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+"");
}
final ActivityManager ActivityManager=(ActivityManager)getSystemService(Context.ACTIVITY_服务);
最终列表recentTasks=activityManager.getRunningTasks(Integer.MAX_值);
对于(int i=0;i

谢谢。

无法从ActivityManager获取
com.android.phone.EmergencyDialer.DIAL
,因为
com.android.phone
是实际的包名,
com.android.phone.EmergencyDialer.DIAL
是EmergencyDialer类上意图操作的字段

见:


您需要给出一个更好的示例来说明您在这里要完成的任务,但是再一次,从ActivityManager类获取拨号变量是不可能的,as
com.android.phone.EmergencyDialer.DIAL
不是也永远不会是有效的运行任务。

看看这个
com.android.phone
是该任务的完整包名
com.android.phone.EmergencyDialer.DIAL
不是软件包名称-你凭什么认为你应该得到它?@laalto那么,我能设法得到
com.android.phone.EmergencyDialer.DIAL
?你需要它做什么?如果你只想知道那个字符串,就把它硬编码。@laalto不,我想知道前台是否有紧急拨号器我想知道前台是否有紧急拨号器所以问题是紧急拨号器实际上只是com.android.phone应用程序中的一个屏幕。没有直接的方法可以知道他们是否离开了紧急拨号器,也可能不是你想要的——从技术上讲,从紧急拨号器拨打电话就意味着离开了紧急拨号器。也就是说,您可以通过对当前运行的软件包进行某种AlarmManager轮询来检测用户是否从前台推送了手机应用程序。这可能是你们最接近检测紧急拨号器的地方了。好吧,据我所知,紧急拨号器和电话有不同的套餐。所以,我将能够通过比较当前最重要的应用程序包和紧急拨号程序包来检测紧急拨号程序的打开和关闭,但如果用户只给任何人打电话,我的应用程序将收到呼叫包并将关闭,因为我的代码会这样做,对吗?你错了。EmergencyDialer.DIAL只是一个intent参数。对不起,目前无法知道紧急拨号器是否在前台。您只能查看手机应用程序是否正在运行。