15

最近、Amazon Mobile App Distribution Portalからアプリが拒否され、[メニュー]->[アプリの評価]オプションがGooglePlayストアにリダイレクトされるという議論がありました。

承認されるには、Amazon Appstoreにリダイレクトする必要があります。ダウンロードURLはhttp://www.amazon.com/gp/mas/dl/android?p=packagenameである必要があります。これは、もちろん意味があります。

だから私は次のようなものが必要です:

String url = isKindle 
    ? "http://www.amazon.com/gp/mas/dl/android?p=packagename" 
    : "https://play.google.com/store/apps/details?id=packagename";

問題は、アプリがKindle Fireで実行されているのか、「ネイティブ」Androidシステムで実行されているのかをどのように区別できるかということです。

4

7 に答える 7

27

あなたはこれらを読むことができます:

android.os.Build.MANUFACTURER 
android.os.Build.MODEL

Kindle Fireでは、これらは「Amazon」と「KindleFire」の値を返します。

http://developer.android.com/reference/android/os/Build.html

これは、アプリがKindleFireで実行されていると判断するのに十分なはずです。


アップデート:

上記は、第1世代のKindleFireで動作します。

Kindle Fireの新しいモデルでは、android.os.Build.MODELの値が異なります。

https://developer.amazon.com/sdk/fire/specifications.html

于 2012-07-11T21:15:07.487 に答える
6

朗報です!どうやら、Amazonストアの最新バージョンは最終的にGooglePlayのとは対照的に設定PackageManager.getInstallerPackageName()されています。"com.amazon.venezia""com.android.vending"

古いアプリは引き続き返さnullれます。実際にAPIを確認していないか、新しいストアをインストールしてから古いアプリをアップグレードするとインストーラーが設定されるかどうかは確認していません。ただし、新しいアプリをインストールしてチェックすると、正しく設定されている/data/system/packages.xmlことがわかります。installer

于 2013-05-31T17:31:40.043 に答える
5

新しいKindleFireデバイスを処理するには、Build.MODELチェックを必ず更新してください。

  • KFOT = Kindle Fire
  • KFTT = Kindle Fire HD 7 "
  • KFJWI = Kindle Fire HD 8.9 "Wi-Fi
  • KFJWA = Kindle Fire HD 8.9 "WAN

これらは、チャートの下部にあるhttps://developer.amazon.com/sdk/fire/specifications.htmlにリストされています。

于 2012-09-18T01:38:30.300 に答える
4

Kindle Fireの検出はソリューションの一部ですが、ソリューション全体ではありません。このスレッドの(現在の)最後の投稿は、「これはAmazonストアからインストールされたのか」の核心に到達しているようです。これはKindleFireであるかどうかはわかりません。

<切り取り、少し編集>

アプリが本番モードでAppstoreを介してインストールされているかどうかを判断する正しい方法は、このonSdkAvailable(boolean isSandboxMode)方法を使用することです。

onSdkAvailable(boolean isSandboxMode)メソッドに関するドキュメント。概要:

  • PurchasingObserverこのコールバックは、に登録すると呼び出されます。PurchasingManager
  • このメソッドは、Purchasing Frameworkがテストデータを使用するサンドボックスモードで実行されているか、実際のデータを使用する本番モードで実行されているかを示します。
  • アプリがAmazonクライアント経由でダウンロードされた場合、isSandboxModefalseが返されます
  • 開始メソッドは、onStart()ライフサイクルメソッド内で呼び出す必要があります

を登録するPurchaseObserverと、非同期コールバックが返されますonSdkAvailable(Boolean isSanboxMode)。アプリがAmazonクライアント経由でダウンロードされた場合、isSandboxMode常にfalseが返されます。このコードは本番モードで正常に機能しますが、開発/テスト環境では、テスト環境でAmazonクライアントを介してアプリがダウンロードされないため、isSandboxModeは常にtrueを返します。

于 2012-10-16T02:14:44.687 に答える
3

2つのアプリを作成します。Android用に1つ。Kindle用です。

于 2012-07-11T21:15:32.577 に答える
0

一般的なウェブページへのリンクを含めると、そのウェブページはトラフィックをAmazonAppStoreまたはGooglePlayにリダイレクトできます。

たとえば、リンクwww.yourwebsite.com/getappを含めると、トラフィックがGooglePlayまたはAmazonにリダイレクトされます。

ロジックが背後にあるとしても、AmazonがGooglePlayリンクを受け入れる可能性は低いです。

于 2014-06-22T01:29:50.813 に答える
0

実際には、チェックを完全にスキップして、market:// details?id=packagenameにリンクするだけです。

于 2015-10-21T10:25:14.350 に答える