3

アプリ内課金はAndroidの新機能であり、使用したいのですが、バージョン要件により、努力する価値があるかどうかを2度考えさせられます。アプリ内課金を詳細に実装または使用したことのある方からのご意見をいただければ幸いです。

  1. 私はまだ10%1.5ユーザーを持っています。アプリ内課金が機能するには、少なくとも1.6が必要です。それは1.5ユーザーがすぐにクラッシュすることを意味しますか?そうでない場合、どの時点で失敗しますか?1.5ユーザーとの互換性を維持するために、ハッキーなコードをたくさん書きたくありません。
  2. ユーザーがアプリを再インストールした場合、アプリの購入は記憶されていますか?
  3. 必要なマーケットバージョンがない場合、どの時点で失敗しますか?

ありがとう。

4

2 に答える 2

1

バージョンのサポートに関しては、デバイスの OS バージョン (android.os.Build.VERSION を参照) を検出するために追加のコードを作成する必要があるため、1.5 デバイスで実行されることを確認してください。そのコードを独自のクラスに分離し、バージョン チェック後にのみそのクラスをインスタンス化することを強くお勧めします。そうすれば、コードはクリーンなまま (「ハッキー」ではない) に保たれ、クラス フィールドから誤って 1.6+ クラスを参照することはありません。私のコードには、次のようなバージョン テスト クラスがあります。

public class Android8 {
    private static final String TAG = "Android8";

    // public test variables
    public static final boolean IS_V8;
    public static final boolean AT_LEAST_V8;

    private static final Object pimpl;

    static {
        int sdk_int = 0;
        try {
            Field field = Build.VERSION.class.getField( "SDK" );
            String sdk_str = (String)field.get( null );
            sdk_int = Integer.parseInt( sdk_str );
        } catch( Throwable e ) {
        }

        IS_V8 = (sdk_int==8);
        AT_LEAST_V8 = (sdk_int>=8);

        if( AT_LEAST_V8 ) {
            pimpl = new Implementation();
        } else {
            pimpl = null;
        }
    }

    // Version safe interface
    public static void Camera_setDisplayOrientation( Camera camera, int degrees ) {
        if( AT_LEAST_V8 )
            ((Implementation)pimpl).Camera_setDisplayOrientation( camera, degrees );
    }

    // Will cause a verify error if loaded in a pre Android8 environment
    private static final class Implementation {
        public static void Camera_setDisplayOrientation( Camera camera, int degrees ) {
            camera.setDisplayOrientation( degrees );
        }
    }
}
于 2011-03-26T18:30:14.003 に答える
1

質問 2: いいえ、アイテムが管理されていない場合。はい。それが管理アイテムのポイントです。このような場合は、購入したアイテムを Google のサーバーで管理 (覚えておいてください) しましょう。

(「ユーザー アカウントごとの管理」購入タイプは、ゲーム レベルやアプリケーション機能などのアイテムを販売する場合に便利です。これらのアイテムは一時的なものではなく、通常、ユーザーがアプリケーションを再インストールしたり、デバイス上のデータを消去したりした場合は常に復元する必要があります。または新しいデバイスにアプリケーションをインストールします。)

から: http://developer.android.com/guide/market/billing/billing_admin.html#billing-purchase-type

于 2011-03-29T11:59:15.887 に答える