10

今日、Google Play にある有料アプリを、3 つのアプリ内購入で無料アプリに変更したいと考えています。問題は、アプリ内購入を既存の顧客に「与える」方法であり、アプリの料金は既に支払っています。

ふと思ったのですが、ライセンシングでうまくいくのでしょうか?

既存の有料アプリは Google ライセンスを使用していますが、すべての機能がアプリ内購入として購入された場合、Google ライセンスは不要になるはずです。したがって、すべての既存の顧客はライセンスを持っていますが、すべての新規顧客はライセンスを必要としません。

ライセンスを確認して、見つかった場合は、3 つのアプリ内購入でアクセスできるのと同じ機能へのアクセスをユーザーに許可することはできますか?

4

2 に答える 2

2

私の知る限り、アプリ内購入が無料でない場合 (クーポンなど)、ユーザーにアプリ内購入を無料で提供する良い方法はありません。

これを行うためのいくつかの可能な方法については、有料バージョンのアプリを無料バージョンの「キー」として使用するにはどうすればよいですか? で説明されています。

これを行う 1 つの方法は、「レガシー ユーザー」(古い有料アプリがインストールされているユーザー) をチェックするコードを用意し、有料アプリを持っていることを示すフラグをデバイスに設定することです。

ユーザーが電話を切り替えたり、アプリをアンインストールしてから再インストールしたりすると、問題が発生します。これを回避するには、レガシー ユーザー向けのアプリ内製品の 2 つ目のセットを無料で追加しますが、古いアプリがインストールされているユーザーにのみ提供されます。無料のレガシー バージョンを購入した後、古いアプリをアンインストールできます。次に、購入した製品をチェックするときはいつでも、レガシー製品か新しい製品かをチェックします。

于 2013-02-28T19:15:17.913 に答える
1

「プロ」アプリが利用可能で、同じ署名によって署名されていることを確認するには、このようなことができると思います。

public boolean isProAppPresent()
{
    try
    {
        PackageInfo info = context.getPackageManager().getPackageInfo("x.x.x.pro",
                PackageManager.GET_META_DATA);
        Log.d(TAG, "Pro app is installed: " + info.applicationInfo.name);
        return context.getPackageManager().checkSignatures("x.x.x",
                "x.x.x.pro") == PackageManager.SIGNATURE_MATCH;
    }
    catch (NameNotFoundException e)
    {
        return false;
    }
}

やり方は簡単ですが、完全防御かどうかはわかりません。

于 2014-02-10T11:50:48.610 に答える