查找Android应用的软件包名称以使用Intent从Web启动Market应用

我正在创build一个移动网站,其中将包含一个人们可以下载我们推荐的相关应用程序的页面。 我已经find了创build启动市场的链接的说明 ,但是这里假设你是有问题的应用程序的开发者,并且知道确切的包名。

除了联系开发人员并询问外,是否有任何方法可以获取包名?

另外,事实certificate,这些说明并不真正用于创buildWeb超链接。 他们只给你一个URI来引用另一个Android应用程序中的一串Java代码。 我们的网站在Drupal,所以Java不会工作。

对于iPhone,我find了从iTunes商店获取URL /链接样式的简单说明 ,所以我正在寻找这样的信息。

这取决于你想从哪里得到信息。 你有一堆select:

  • 如果您拥有.apk的副本,则只需将其作为zip文件打开并查看AndroidManifest.xml文件即可。 顶级<manifest>元素将具有package属性。
  • 如果你的应用安装在设备上并且可以使用adb进行连接,你可以启动adb shell并执行pm list packages -f ,它显示了每个安装的apk软件包的名称。
  • 如果您只是想手动查找一些软件包名称,可以在http://www.cyrket.com/m/android/上search应用程序,软件包名称显示在URL中;
  • 您也可以使用PackageManager从Android应用程序中逐步完成

获得包名后,只需链接到market://search?q=pname:<package_name>http://market.android.com/search?q=pname:<package_name>包名http://market.android.com/search?q=pname:<package_name> 。 两者都将在Android设备上打开市场; 后者显然有潜力在其他硬件上工作(这不是在一分钟)。

像SDK一样使用SDK中的aapt

 aapt dump badging yourpkg.apk 

这将打印包名和其他信息。

工具位于
<SDK_HOME> /构build工具/ android- <api_level>
要么
<SDK_HOME> /平台的工具
要么
<SDK_HOME> /平台/ android- <api_level> /工具

根据geniusburger的评论更新。 谢谢!

以下bash脚本可用于显示apk中的包和活动名称,并通过传递一个APK文件来启动该应用程序。

apk_start.sh

 package=`aapt dump badging $* | grep package | awk '{print $2}' | sed s/name=//g | sed s/\'//g` activity=`aapt dump badging $* | grep Activity | awk '{print $2}' | sed s/name=//g | sed s/\'//g` echo echo package : $package echo activity: $activity echo echo Launching application on device.... echo adb shell am start -n $package/$activity 

然后在模拟器中启动应用程序,只需提供APK文件名即可:

 apk_start.sh /tmp/MyApp.apk 

当然,如果你只想显示apk的包和活动名称,删除脚本的最后一行。

您可以使用以下脚本以相同的方式停止应用程序:

apk_stop.sh

 package=`aapt dump badging $* | grep package | awk '{print $2}' | sed s/name=//g | sed s/\'//g` adb shell am force-stop $package 

像这样:

 apk_stop.sh /tmp/MyApp.apk 

重要提示 :aapt可以在这里find:

 <android_sdk_home>/build-tools/android-<ver>/aapt 

以下代码将列出它们:

 adb shell dumpsys package <packagename> 

不知道如果你仍然需要这个,但在http://www.appbrain.com/ ,你查找应用程序和包名称是在url。 例如: http : //www.appbrain.com/app/fruit-ninja/ com.halfbrick.fruitninja是水果忍者的链接。 注意大胆

添加到上面的答案:要find任何Android设备上安装的应用程序的包名称: 转到存储/ Android /数据/ <package-name>

这是获取应用程序的完整软件包的简单方法。 我们可以使用astro文件pipe理器应用程序。 你可以在android市场上得到它。 Astro应用程序经理向我们展示了应用程序的完整包

您可以在Google Play商店中在线search应用程序。 find后,请检查url,例如, https://play.google.com/store/apps/details?id=lutey.FTPServer&hl=zh-CN

id参数对应于应用程序的包名称。 在示例中的url的情况下,包名称是lutey.FTPServer。

这是一个相当困难的情况,你可以从apk文件中获取包名,但是我假设你想自动完成。

AndroLib拥有许多应用程序的软件包名称,但是由于没有可以find的API,因此您必须对其进行parsing。 这是一个开发部分,可能有一些工具来帮助你。

祝你好运

一旦你有包名称,如克里斯·史密斯的回答所描述的 ,你可以/应该使用一个意图的链接。 这是一个特殊格式的URL ,如果用户已经安装了它,将会启动这个包,或者如果不是,那么在应用程序的页面上打开Play商店。

 intent://#Intent;package=qualified.package.name;end 

该应用程序需要支持这一点,标记为可浏览的活动,但许多人会。

  1. 去设置应用程序。
  2. 点击存储和USB。
  3. 点击电话卡。
  4. 点击Android。
  5. 点击数据。

现在您可以find手机中安装的所有应用程序的软件包名称。

在这里输入图像说明

如果你想在手机中获取这些信息,那么最好的办法就是使用像“APKit”这样的应用程序来显示手机中每个应用程序的完整软件包名称。 这些信息可以在手机中使用。

Interesting Posts