Niestandardowe uprawnienia do Androida na podstawie zamówienia instalacji aplikacji

Problemy z moimi aplikacjami w Google Play. Mam bezpłatną aplikację, która wykorzystuje niestandardowe uprawnienia. To uprawnienie umożliwia dostęp do płatnych aplikacji. Te płatne aplikacje działają jako „klucze” i odblokowują funkcje w bezpłatnej aplikacji. Zasadniczo darmowa aplikacja będzie próbowała uruchomić intencję jednej z płatnych aplikacji. Płatna aplikacja zrobi kilka rzeczy i zwróci informację, czy bezpłatna aplikacja powinna odblokować funkcje, czy nie.

Problem pojawia się na podstawie kolejności instalacji aplikacji. Jeśli bezpłatna aplikacja jest instalowana najpierw w aplikacji płatnej, bezpłatna aplikacja nie może rozpocząć zamiaru. Zwraca odmowę zezwolenia. Jeśli płatna aplikacja jest zainstalowana najpierw, a następnie bezpłatna aplikacja, bezpłatna aplikacja nie może rozpocząć intencji bez problemu. Ponowne uruchomienie urządzenia i / lub wymuszenie zatrzymania aplikacji nie rozwiązuje problemu. Dołączam kod ponownego wydania. Coś mi mówi, że robię coś niewłaściwie.

Darmowy manifest aplikacji (odpowiedni kod):

...
<uses-permission android:name="com.company.license.PERMISSION" />
...

Bezpłatny kod aplikacji do sprawdzenia intencji (odpowiedni kod):

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 płatnej aplikacji (odpowiedni kod):

<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>

questionAnswers(2)

yourAnswerToTheQuestion