web-dev-qa-db-ja.com

AndroidアプリがWebからマーケットアプリを起動するためにIntentを使用するアプリのパッケージ名を見つける

推奨される関連アプリをダウンロードできるページを含むモバイルWebサイトを作成しています。 instructions を見つけて、マーケットを起動するためのリンクを作成しましたが、これは問題のアプリの開発者であり、正確なパッケージ名を知っていることを前提としています。

開発者に連絡して尋ねる以外に、パッケージ名を取得する方法はありますか?

また、これらの指示はWebハイパーリンクの作成には実際には機能しないことがわかりました。 Java別のコードのコードAndroidアプリ。私たちのサイトはDrupalにあるので、Javaは機能しません。

IPhoneについては、iTunesストアから必要なURL /リンクスタイルを取得するための 簡単な手順 が見つかったため、そのような情報を探しています。

45
eom

正確にどこから情報を取得したいかによります。たくさんのオプションがあります:

  • .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デバイスで市場を開きます。後者は明らかに他のハードウェアでも動作する可能性があります(現時点では動作しません)。

97
Chris

SDKのaaptを使用します

aapt dump badging yourpkg.apk

これにより、パッケージ名と他の情報が出力されます。

ツールはにあります
<sdk_home>/build-tools/Android- <api_level>
または
<sdk_home>/platform-tools
または
<sdk_home>/platforms/Android- <api_level>/tools

geniusburgerのコメントに従って更新。ありがとう!

55
accuya

次の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
7
Brad Parks

次のコードはそれらをリストします。

adb Shell dumpsys package <packagename>
4
Thejus Krishna

これがまだ必要かどうかはわかりませんが、 http://www.appbrain.com/ では、アプリを検索し、パッケージ名がURLにあります。例: http://www.appbrain.com/app/fruit-ninja/com.halfbrick.fruitninjaはフルーツニンジャのリンクです。太字に注意してください

3
Anonymous

上記の回答に追加:任意のAndroid device:Go to Storage/Android/data/<package-name>

2
Akil Adeshwar

Google Playストアでオンラインでアプリを検索できます。見つかったら、URLを確認します。たとえば、 https://play.google.com/store/apps/details?id=lutey.FTPServer&hl=en

Idパラメーターは、アプリケーションのパッケージ名に対応しています。この例のURLの場合、パッケージ名はlutey.FTPServerです。

1
R B

アプリの完全なパッケージを取得する簡単な方法を次に示します。アストロファイルマネージャーアプリを使用できます。 Android market。Astroアプリマネージャーがアプリの完全なパッケージを表示します。

1
B.C.Kim

クリス・スミスの答え で説明されているように、パッケージ名を取得したら、リンクにインテントURLを使用する/使用する必要があります。 特別な形式のURL で、ユーザーが既にインストールしている場合はパッケージを起動します。そうでない場合は、アプリケーションのページでPlayストアを開きます...

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

アプリはこれをサポートする必要があり、アクティビティは閲覧可能としてタグ付けされますが、多くの場合はサポートされます。

0
bbsimonbb

これは非常に困難な状況です。apkファイルからパッケージ名を取得できますが、自動的に実行することを想定しています。

AndroLibには多くのアプリのパッケージ名がありますが、APIが見つからないため、解析する必要があります。あなたを助けるいくつかのツールを持っているかもしれない開発セクションがあります。

がんばろう

0
Con
  1. 設定アプリに移動します。
  2. [ストレージとUSB]をクリックします。
  3. 電話カードをクリックします。
  4. Androidをクリックします。
  5. データをクリックします。

これで、携帯電話にインストールされているすべてのアプリのパッケージ名を見つけることができます。

enter image description here

0
Siddarth Kanted