AndroidアプリをデバイスにインストールしたAmazonまたはsamsung marketまたはgoogle playかどうかを確認してください。
AndroidフォンにABCという名前のアプリがインストールされているとします。私のアプリケーションでは、携帯電話にインストールされているすべてのアプリを一覧表示し、ダウンロード元の市場を一覧表示する必要があります。
これはどのように行うことができますか?
AndroidアプリをデバイスにインストールしたAmazonまたはsamsung marketまたはgoogle playかどうかを確認してください。
AndroidフォンにABCという名前のアプリがインストールされているとします。私のアプリケーションでは、携帯電話にインストールされているすべてのアプリを一覧表示し、ダウンロード元の市場を一覧表示する必要があります。
これはどのように行うことができますか?
私はこのようにしました(すべてのプロジェクトに対して単一の src および res フォルダー、市場ごとに異なる LauncherActivities ):
res および src フォルダーを /sharedsources/ などの場所にコピーします。
Google/Amazon/Samsung の 3 つの新しいプロジェクトを作成します。
各プロジェクトから res および src フォルダーを削除します。
各プロジェクトで、/sharedsources/res および .../src へのリンクを作成します。
たとえば、GoogleLicensing、AmazonLicensing、SamsungLicensing
の 3 つの新しいアクティビティを作成します。
Google プロジェクト マニフェスト: GoogleLicensing をランチャー アクティビティとして設定します
Samsung プロジェクト マニフェスト: SamsungLicensing をランチャー アクティビティとして設定し
ます Amazon プロジェクト マニフェスト: AmazonLicensing をランチャー アクティビティとして設定します
Google プロジェクト: ビルドから SamsungLicensing および AmazonLicensing アクティビティを削除します (削除しないでください) Samsung プロジェクト: ビルドから GoogleLicensing および AmazonLicensing アクティビティを削除します (削除しないでください) Amazon プロジェクト: ビルドから SamsungLicensing および GoogleLicensing アクティビティを削除します (削除しないでください)
終わり。
各プロジェクトをエクスポートします。
AndroidManifests が 3 つあることに注意してください。これらは適宜編集する必要があります。また、一度に開くプロジェクトは 1 つだけにしてください。同じソースを共有しているため、とにかく複数を開く理由はありません...
実際、私はこれを Linux と Windows (私の sharedsources フォルダーは共有 hdd にあります) の間で 1 つのプロジェクトだけを交換できるようにするために行いましたが、さまざまな市場でも非常にうまく機能しました。
アプリが Android マーケットからダウンロードされたかどうかを検出するからの回答を引用する
API 5 以降では、 PackageManager.getInstallerPackageName(String)を使用できます 。ドキュメントから:
パッケージをインストールしたアプリケーションのパッケージ名を取得します。これは、パッケージがどの市場から来たかを識別します。
Android マーケットのパッケージを入手するには、この投稿が役立つ場合があります。
適切なデバイスがあれば、認識したい各市場のパッケージ名を出力するアプリを構築できると思います。
1 つのオプションは、それらを個別にパッケージ化することです。ある時点で、ライセンスやアプリ内支払いなど、マーケットプレイス固有の機能を使用することにした場合は、とにかくそれを行う必要があります.
これを行うための管理しやすい方法は、ほとんどすべてを含むライブラリ プロジェクトと、それを参照し、詳細のみを含む多数のミニ プロジェクトです。
欠点: 1 つではなく複数のプロジェクト。利点: 管理性、保守性。
編集: それでも証明書を使用したい場合は、次の例が役立ちます: thomascannon.net/misc/android_apk_certificate/ 。
最終的に思いついた解決策を投稿してください。