2014-02-10 5 views
1

Я пытаюсь разработать приложение, в котором я должен использовать разрешение «android.permission.READ_NETWORK_USAGE_HISTORY», которое защищено защитой «подпись | система» уровень.Не удалось получить подпись | системное разрешение на приложение, установленное как системное приложение

Чтобы использовать это разрешение, я скопировал свой apk в/system/app/location android 4.4.2 avd, чтобы приложение работало как системное приложение.

Но когда я запустить приложение я получаю SecurityException вызвано следующими причинами: java.lang.SecurityException: NetworkStats: Ни пользователя 10052, ни текущий процесс android.permission.READ_NETWORK_USAGE_HISTORY.

Я правильно указал разрешение в манифесте и даже установил приложение как системное приложение, которое должно быть достаточным для использования любого api, защищенного вышеупомянутым разрешением.

Теперь возникает вопрос, почему я получаю исключение безопасности, когда мое приложение имеет право получить это разрешение.

Введено Детали: https://android.googlesource.com/platform/frameworks/base/+/master/core/res/AndroidManifest.xml

ответ

1

Попробуйте добавить ниже разрешений, а в манифесте:

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
+0

<использует-разрешение андроид: имя = "android.permission.INTERNET" /> <использует-разрешение андроид: имя = "android.permission.ACCESS_NETWORK_STATE" /> <использует-разрешение андроид: имя = "андроид. permission.WRITE_EXTERNAL_STORAGE "/> – user3584601

+0

как эти разрешения связаны с моей проблемой? – kaps

1

Вы не можете просто сказать, что приложение стало системное приложение, просто скопировав его в system/app. Основной предпосылкой для приложения как системного приложения является то, что приложение должно быть подписано теми же ключами подписки, с которыми были подписаны другие системные приложения на устройстве. Для аппаратного устройства эти являются ключами, которые производитель использует при подписании ОС на устройстве.

Смежные вопросы