查找Android应用程序的程序包名称,以使用Intent从Web启动Market应用程序

时间:2010-05-07 14:52:57

标签: android hyperlink google-play android-intent

我正在创建一个移动网站,其中包含一个页面,人们可以从中下载我们推荐的相关应用。我发现instructions用于创建启动市场的链接,但这假设您是相关应用的开发者,并且知道确切的包名称。

有没有办法获得包名,除了联系开发人员并询问?

此外,事实证明这些说明并不真正适用于创建Web超链接。它们只为您提供一个URI,以便在另一个Android应用程序中的一串Java代码中引用。我们的网站位于Drupal,所以Java无法运行。

对于iPhone,我发现easy instructions用于从iTunes商店获取我需要的URL /链接样式,所以我正在寻找类似的信息。

12 个答案:

答案 0 :(得分:96)

这取决于您希望从何处获取信息。你有很多选择:

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

获得包名后,您只需链接到market://search?q=pname:<package_name>http://market.android.com/search?q=pname:<package_name>即可。两者都将在Android设备上打开市场;后者显然也有可能在其他硬件上工作(它不会在那一刻)。

答案 1 :(得分:55)

使用SDK中的aapt

aapt dump badging yourpkg.apk

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

工具位于
&LT; SDK_HOME&GT; /积聚工具/ android-&LT; api_level&GT;

&LT; SDK_HOME&GT; /平台的工具

&LT; SDK_HOME&GT; /平台/ android-&LT; api_level&GT; /工具

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

答案 2 :(得分:7)

以下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可以在这里找到:

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

答案 3 :(得分:4)

以下代码将列出它们:

adb shell dumpsys package <packagename>

答案 4 :(得分:3)

不确定您是否仍然需要此功能,但在http://www.appbrain.com/中,您会查找应用,并且包名称位于网址中。例如:http://www.appbrain.com/app/fruit-ninja/ com.halfbrick.fruitninja 是水果忍者的链接。注意粗体

答案 5 :(得分:2)

添加上述答案: 要在任何Android设备上查找已安装应用的包名称: 转到存储/ Android / data /&lt;包名&gt;

答案 6 :(得分:1)

这是获取应用程序完整包的简便方法。 我们可以使用astro文件管理器应用程序。你可以在Android市场上获得它。 Astro app manager向我们展示应用程序的完整软件包。

答案 7 :(得分:1)

您可以在Google Play商店中在线搜索应用。找到后,请检查网址,例如https://play.google.com/store/apps/details?id=lutey.FTPServer&hl=en

id参数对应于应用程序的包名称。对于示例中的url,包名称为lutey.FTPServer。

答案 8 :(得分:0)

这是一个相当困难的情况,您可以从apk文件中获取包名称,但我假设您想自动执行此操作。

AndroLib拥有许多应用程序的软件包名称,但您必须解析它,因为我找不到任何API。这是一个开发部分,可能有一些工具可以帮助你。

祝你好运

答案 9 :(得分:0)

如果您拥有包名称(如Chris Smith's answer所述),您可以/应该使用意向网址作为链接。它是一个special format URL,如果用户已安装它,它将启动该包,或者如果不是,则在应用程序页面打开游戏商店......

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

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

答案 10 :(得分:0)

  1. 转到设置应用
  2. 点击存储&amp; USB。
  3. 点击电话卡。
  4. 点击Android。
  5. 点击数据。
  6. 现在,您可以找到手机中安装的所有应用的包名称。

    enter image description here

答案 11 :(得分:-2)

如果您想在手机中使用此信息,那么最好使用类似“APK”的应用,该应用会显示手机中每个应用的完整包装名称。然后可以在手机中使用此信息。