Android Things не дает разрешения на загрузку, что дает?

1

Получил этот блестящий манифест, готовый получить все разрешения ze

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="exm.rand.lol">

  <uses-permission android:name="com.google.android.things.permission.MODIFY_SCREEN_SETTINGS" />
  <uses-permission android:name="com.google.android.things.permission.REBOOT"/>


  <application>
    <uses-library android:name="com.google.android.things" />

    <activity android:name=".MainActivity">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.IOT_LAUNCHER" />
        <category android:name="android.intent.category.DEFAULT" />
      </intent-filter>
    </activity>
  </application>

</manifest>

и все же, когда я загружаю малиновый pi, он терпит неудачу с этим в logcat

12-01 15:23:19.349  2960  2960 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{exm.rand.lol/exm.rand.lol.MainActivity}: java.lang.SecurityException: Calling process requires permission com.google.android.things.permission.MODIFY_SCREEN_SETTINGS

Я искал высокий и низкий, наткнулся на несколько потоков на StackOverflow

Разрешение Android Things com.google.android.things.permission.MANAGE_INPUT_DRIVERS не найдено

Как запросить разрешение на Android Things?

но безрезультатно. Перезагрузка ничего не делает, переустановка ничего не делает, единственный способ, которым я нашел atm для предоставления разрешений, - это вручную предоставить их через adb, например dis

 adb shell pm grant exm.rand.lol com.google.android.things.permission.REBOOT

Запуск последней версии 6 Android.

  • 0
    На самом деле вам не нужно разрешение REBOOT для перезагрузки устройства Android Things
  • 0
    Вы уверены, что это манифест, который дает вам эту ошибку? Ошибка подразумевает, что в элементе <activity> вас есть android:permission="com.google.android.things.permission.MODIFY_SCREEN_SETTINGS" .
Показать ещё 2 комментария
Теги:
android-things

2 ответа

0

Чтобы окунуться в вещи... Хотя в Android Things сказано, что:

Все обычные и опасные разрешения, объявленные в манифесте приложения, предоставляются во время установки.

Недостаточно объявить разрешения в манифесте:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.xxx.yyy">

    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="com.google.android.things.permission.MODIFY_SCREEN_SETTINGS"/>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <application>
    </application>
</manifest>

Вам необходимо перезагрузить устройство с установленным приложением.

ПРАВА ПРИМЕНЕНИЯ ПРЕДОСТАВЛЯЮТСЯ НА УСТРОЙСТВО УСТРОЙСТВА не перезапуск приложения.

  • 0
    Цитируя то, что я написал в ОП: «Перезагрузка ничего не делает», я очень хорошо это знаю, но все равно не дает разрешения.
  • 0
    В моем случае мне нужно было установить приложение для Android с указанными разрешениями в Manifest и перезагрузить устройство . Это сработало. После перезапуска у меня были все разрешения, предоставленные во время выполнения.
0

С Developer Preview 6 вы должны использовать API-интерфейс DeviceManager. Разрешение перезагрузки может быть предоставлено только системным приложениям, если я не ошибаюсь, и консоль Android Things никогда не упакует ваш APK в качестве системного приложения.

new DeviceManager().reboot()
  • 0
    Это то, что я использую, но опять-таки на все документы для Android, если вызывающий контекст не имеет разрешения com.google.android.things.permission.REBOOT, он выдаст исключение SecurityException, и моя проблема заключается в том, что он не дает указанные разрешения, даже если я добавил их в файл манифеста. Они работают только если я добавлю их вручную через adb.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню