Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.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
Java 查找Android应用程序的主要活动_Java_Android_Apk - Fatal编程技术网

Java 查找Android应用程序的主要活动

Java 查找Android应用程序的主要活动,java,android,apk,Java,Android,Apk,我有一个自定义的启动器,有时想添加一个按钮来启动第三方应用程序。要做到这一点,我需要的应用程序包的名称,这是很容易找到,但也应用程序的主要或启动活动。我使用它来创建我传递给我的应用程序的意图 例如,要创建启动Skype的意图,我使用: `new Intent().setComponent(new ComponentName("com.skype.raider", "com.skype.raider.Main")) 我通过谷歌搜索找到了主要活动的名称,由于Skype是一款受欢迎的应用程序,它最终

我有一个自定义的启动器,有时想添加一个按钮来启动第三方应用程序。要做到这一点,我需要的应用程序包的名称,这是很容易找到,但也应用程序的主要或启动活动。我使用它来创建我传递给我的应用程序的意图

例如,要创建启动Skype的意图,我使用:

`new Intent().setComponent(new ComponentName("com.skype.raider", "com.skype.raider.Main"))
我通过谷歌搜索找到了主要活动的名称,由于Skype是一款受欢迎的应用程序,它最终出现了

我知道如果我有APK,我可以打开它看看androidmainifest,但是我不知道如何获得一些应用的APK。例如,我想开始。我可以看到包名,
com.dbapp.android.mediahouse
,但是我不确定如何获取主要活动的名称(我尝试了.main)

我已经看过了Chrome的扩展,它应该可以让你从Google Play获得APK,但它似乎不再工作了

我知道从自定义启动器启动第三方应用程序一定很常见,但我在搜索时找不到答案


人们通常如何处理这个问题?你是从谷歌Play商店获得APK的吗?如果是的话,你是如何做到的?同样,我知道我可以通过阅读清单来获取活动,但在很多情况下我不知道如何获取APK本身。如果您有任何建议,我们将不胜感激,谢谢

您可以使用
Intent-Intent=newintent(android.content.Intent.MAIN)

或者像后面的示例一样启动映射并解析URI:

String uri = "http://maps.google.com/maps?saddr=" + Utils.getLatitude(ShowDetails.this)+","+Utils.getLongitude(ShowDetails.this)+"&daddr="+userLatitude+","+userLongitude;
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri));
intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
startActivity(intent);

您可以使用
Intent-Intent=newintent(android.content.Intent.MAIN)

或者像后面的示例一样启动映射并解析URI:

String uri = "http://maps.google.com/maps?saddr=" + Utils.getLatitude(ShowDetails.this)+","+Utils.getLongitude(ShowDetails.this)+"&daddr="+userLatitude+","+userLongitude;
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri));
intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
startActivity(intent);

启动器应通过使用
PackageManager
QueryInputActivities()
查找设备上应用程序发布的
MAIN
/
启动器
活动。它实现了这样一个启动器

PackageManager pm=getPackageManager();
Intent main=new Intent(Intent.ACTION_MAIN, null);

main.addCategory(Intent.CATEGORY_LAUNCHER);

List<ResolveInfo> launchables=pm.queryIntentActivities(main, 0);
PackageManager pm=getPackageManager();
Intent main=新的Intent(Intent.ACTION_main,空);
main.addCategory(Intent.CATEGORY_启动器);
List launchables=pm.querytentActivities(main,0);

然后,您可以使用该
列表
列表视图
网格视图
等中显示可用的活动。

启动器应该通过使用
PackageManager
QueryInputActivities()
来查找设备上应用程序发布的
/
启动器
活动。它实现了这样一个启动器

PackageManager pm=getPackageManager();
Intent main=new Intent(Intent.ACTION_MAIN, null);

main.addCategory(Intent.CATEGORY_LAUNCHER);

List<ResolveInfo> launchables=pm.queryIntentActivities(main, 0);
PackageManager pm=getPackageManager();
Intent main=新的Intent(Intent.ACTION_main,空);
main.addCategory(Intent.CATEGORY_启动器);
List launchables=pm.querytentActivities(main,0);

然后,您可以使用该
列表
列表视图
网格视图
等中显示可用的活动。

打包管理器
提供了一种方法来准确获取您想要的内容:

PackageManager.getLaunchIntentForPackage(String packageName)

PackageManager
提供了一种方法,可以准确地获得您想要的:

PackageManager.getLaunchIntentForPackage(String packageName)

使用action main和category launcher查找用于启动app@njzk2谢谢你的回复。很抱歉,我不知道你的意思,你能详细说明一下吗?使用action main和category launcher来查找用于启动app@njzk2谢谢你的回复。对不起,我不知道你的意思,你能详细解释一下吗?嗨。抱歉,我不确定这与实际查找APK和获取APK活动有何关系。嗨。抱歉,我不确定这与实际查找APK和获取APK的活动有什么关系。不过有一点需要注意:如果存在类别信息,这将返回类别信息的意图,而不是类别启动器的意图。有一点需要注意,尽管如此:如果存在,这将返回CATEGORY\u INFO的意图,而不是CATEGORY\u启动器的意图。