Google Play のアプリに問題があります。カスタム許可を利用する無料アプリがあります。この権限により、有料アプリへのアクセスが許可されます。これらの有料アプリは「キー」として機能し、無料アプリの機能のロックを解除します。基本的に、無料アプリはいずれかの有料アプリのインテントを開始しようとします。有料アプリはいくつかのことを行い、無料アプリが機能のロックを解除する必要があるかどうかを返します。
アプリのインストール順序によって問題が発生します。無料アプリが最初にインストールされ、次に有料アプリがインストールされた場合、無料アプリはインテントを開始できません。許可拒否を返します。有料アプリを先にインストールしてから無料アプリをインストールした場合、無料アプリは問題なくインテントを開始できます。デバイスを再起動したり、アプリを強制停止したりしても、問題は解決しません。関連コードを添付しています。私が何か間違ったことをしていると何かが教えてくれます。
無料アプリ マニフェスト (関連コード):
... <uses-permission android:name="com.company.license.PERMISSION" /> ...
意図を確認するための無料アプリ コード (関連コード):
Intent KeyApp = new Intent("com.company.license.action.AUTH_1"); KeyApp.putExtra("com.company.license.challenge", 1); //If free app is installed first, an exception is thrown for not having the proper permission. If paid app is installed first, no exception is thrown try { startActivityForResult(KeyApp, COMMING_FROM_KEYAPP); } catch (Exception e) { cancelStartUp(); }
有料アプリ マニフェスト (関連コード):
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.company.installer.1" ... <permission android:name="com.company.license.PERMISSION" android:icon="@drawable/icon" android:label="@string/app_name" android:protectionLevel="normal" > </permission> <application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.NoDisplay" > <activity android:name="com.company.license.auth" android:configChanges="keyboardHidden|orientation" android:exported="true" android:permission="com.company.license.PERMISSION" android:theme="@style/Theme.Transparent" > <intent-filter> <action android:name="com.company.license.action.AUTH_1" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <activity android:name="com.company.installer.redirect" android:configChanges="keyboardHidden|orientation" android:exported="true" android:theme="@style/Theme.Transparent" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>