Получил этот блестящий манифест, готовый получить все разрешения 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.
Чтобы окунуться в вещи... Хотя в 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>
Вам необходимо перезагрузить устройство с установленным приложением.
ПРАВА ПРИМЕНЕНИЯ ПРЕДОСТАВЛЯЮТСЯ НА УСТРОЙСТВО УСТРОЙСТВА не перезапуск приложения.
С Developer Preview 6 вы должны использовать API-интерфейс DeviceManager. Разрешение перезагрузки может быть предоставлено только системным приложениям, если я не ошибаюсь, и консоль Android Things никогда не упакует ваш APK в качестве системного приложения.
new DeviceManager().reboot()
REBOOT
для перезагрузки устройства Android Things<activity>
вас естьandroid:permission="com.google.android.things.permission.MODIFY_SCREEN_SETTINGS"
.