Активность началась, даже если у нее есть тег android: protectionLevel = "signature" - PullRequest
0 голосов
/ 22 марта 2012

У меня есть 2 приложения «A» и «B»

Приложение «A» подписано сертификатом C_A и «B» с C_B

в «A»

    <activity android:name=".ActivityA" android:protectionLevel="signature" android:label="@string/app_name">
        <intent-filter>
            <action android:name="com.temp.packagea" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity> 

в приложении "B"

        Intent i = new Intent();
        i.setAction("com.temp.package");
        startActivity(i);

, и проблема в том, что приложение A без проблем запускается из приложения B.

Как я могу защитить начальную активность в моем приложениииз приложения, подписанного той же подписью, что и у меня.

Ответы [ 2 ]

3 голосов
/ 22 марта 2012

protectionLevel не является допустимым атрибутом для тега Activity в манифесте. Тег protectionLevel применяется к элементу <permission> и используется, когда ваше приложение указывает новое разрешение (не одно из системных разрешений Android по умолчанию).

Похоже, вы пытаетесь запретить приложениям вызывать Activity (в вашем примере A), если они не подписаны тем же сертификатом, что и содержащее приложение. Здесь вы хотите объявить новое разрешение в манифесте (приложения, содержащего A) с помощью элемента <permission> и установить protectionLevel вашего нового разрешения на Signature. Затем в объявлении манифеста для Activity используйте атрибут android:permission, чтобы это новое разрешение требовалось для запуска Activity. Для любого другого приложения, которое вы хотите иметь возможность вызывать Activity, вам просто нужно добавить элемент uses-permission в манифест этого другого приложения и указать новое разрешение, которое вы создали. Поскольку это разрешение Signature, система автоматически предоставит его при установке нового приложения.

0 голосов
/ 22 марта 2012

Неправильное использование на Android: ProtectionLevel, следует поместить его в узел разрешения.

...