[英]Find package name for Android apps to use Intent to launch Market app from web
这取决于您希望从何处获取信息。 你有很多选择:
<manifest>
元素将具有package
属性。 adb
进行连接,则可以启动adb shell
并执行pm list packages -f
,其中显示了每个已安装的apk的程序包名称。 PackageManager
从Android应用程序进行预测 获得软件包名称后,只需链接到market://search?q=pname:<package_name>
或http://market.android.com/search?q=pname:<package_name>
。 两者都将在Android设备上打开市场; 后者显然也有可能在其他硬件上工作(它不会在那一刻)。
使用SDK中的aapt
aapt dump badging yourpkg.apk
这将打印包名称和其他信息。
工具位于
<SDK_HOME> /构建工具/ 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可以在这里找到:
<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是水果忍者的链接。 注意粗体
添加以上答案:要在任何Android设备上查找已安装应用程序的软件包名称: 转至Storage / Android / data / <package-name>
您可以在Google Play商店中在线搜索应用。 找到后,请检查网址,例如https://play.google.com/store/apps/details?id=lutey.FTPServer&hl=en
id参数对应于应用程序的包名称。 对于示例中的url,包名称为lutey.FTPServer。
这是获取应用程序完整包的简便方法。 我们可以使用astro文件管理器应用程序。 你可以在Android市场上获得它。 Astro app manager向我们展示应用程序的完整软件包。
这是一个相当困难的情况,您可以从apk文件中获取包名称,但我假设您想自动执行此操作。
AndroLib有很多应用程序的软件包名称,但你必须解析它,因为我找不到任何API。 这是一个开发部分,可能有一些工具可以帮助你。
祝好运
一旦你有了包名,就像Chris Smith的回答所描述的那样 ,你可以/应该使用一个意向URL作为链接。 这是一个特殊的格式URL ,如果用户已安装它,将启动该软件包,或者如果不是,则在应用程序页面打开游戏商店...
intent://#Intent;package=qualified.package.name;end
应用程序需要支持这一点,活动标记为可浏览,但许多人会。
如果您想在手机中使用此信息,那么最好使用类似“APK”的应用,该应用会显示手机中每个应用的完整包装名称。 然后可以在手机中使用此信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.