同じ証明書で署名されたアプリケーションによってのみ使用可能なコンテンツプロバイダを作成しようとしています。 私は、署名保護レベルと権限を宣言している。この他のアプリケーションでコンテンツプロバイダにアクセスするセキュリティ例外
<provider
android:name=".MyProvider"
android:authorities="com.example.provider"
android:permission="com.example.permissions.USER_PERMISSION"
android:readPermission="com.example.permissions.USER_PERMISSION_READ"
android:writePermission="com.example.permissions.USER_PERMISSION_WRITE"
android:exported="true">
</provider>
のようなコンテンツプロバイダを宣言しました。
すべて良いが、私はこのような他のアプリケーションからプロバイダにアクセスしようとすると:
//Create an URI that will be used to check the status of the content provider
Uri myURI = Uri.parse("content://com.example.provider");
ContentResolver contentResolver = getContentResolver();
try {
contentResolver.insert(prototypeURI,null);
} catch (Exception e) {
e.printStackTrace();
}
私はSecurityException: Permission Denial: opening provide ... requires com.example.permissions.USER_PERMISSION_READ
を取得します。
アイデア?
あなたのアンドロイドのメインファイストファイルの読み取りまたは書き込みのアクセス権を受け取ります –
私はそうしました。彼らは両方ともそこにいます – Arkde
6.0または>で動作していますか?実行時パーミッションを尋ねる必要があります。 –