簡體   English   中英

查找Android應用程序的程序包名稱,以使用Intent從Web啟動Market應用程序

[英]Find package name for Android apps to use Intent to launch Market app from web

我正在創建一個移動網站,其中包含一個頁面,人們可以從中下載我們推薦的相關應用。 我已經找到了創建啟動市場鏈接的說明 ,但這假設您是相關應用程序的開發人員,並且知道確切的包名稱。

有沒有辦法獲得包名稱,除了聯系開發人員和詢問?

而且,事實證明這些指令並不真正適用於創建Web超鏈接。 它們只為您提供一個URI,以便在另一個Android應用程序中的一串Java代碼中引用。 我們的網站位於Drupal,因此Java無法運行。

對於iPhone,我找到了從iTunes商店獲取我需要的URL /鏈接樣式的簡單說明 ,所以我正在尋找這樣的信息。

這取決於您希望從何處獲取信息。 你有很多選擇:

  • 如果您有.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設備上打開市場; 后者顯然也有可能在其他硬件上工作(它不會在那一刻)。

使用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

應用程序需要支持這一點,活動標記為可瀏覽,但許多人會。

  1. 轉到設置應用。
  2. 單擊存儲和USB。
  3. 單擊電話卡。
  4. 點擊Android。
  5. 單擊數據。

現在,您可以找到手機中安裝的所有應用的包名稱。

在此輸入圖像描述

如果您想在手機中使用此信息,那么最好使用類似“APK”的應用,該應用會顯示手機中每個應用的完整包裝名稱。 然后可以在手機中使用此信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM