2017-12-01 3 views
1

Haben Sie dieses glänzendes Manifest bereit, alleAndroid Dinge gewährt keine Berechtigungen beim Booten, was gibt es?

<?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> 

und noch Berechtigungen ze gewährt werden, wenn ich das Raspberry Pi boote es mit diesem in der logcat nicht

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 

ich hoch und niedrig gesucht, stolperte auf mehrere Threads auf Stackoverflow

Android Things permission com.google.android.things.permission.MANAGE_INPUT_DRIVERS not found

How to request permission on Android Things?

aber ohne Erfolg. Rebooting nichts tun, wird der Neuinstallation nichts tun, ist die einzige Art, wie ich atm gefunden Berechtigungen zu geben, ist sie manuell durch adb zu gewähren, wie dis

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

Lauf neuesten Preiew 6 von Android Things.

+0

Sie benötigen nicht wirklich die 'REBOOT'-Berechtigung zum [Neustart von Android Things-Geräten] (https://Stackoverflow.com/a/44209713/3290339) – Onik

+0

Sind Sie sicher, dass das Manifest diesen Fehler anzeigt? Der Fehler bedeutet, dass Sie auf dem Element "" 'android: permission =" com.google.android.things.permission.MODIFY_SCREEN_SETTINGS "' haben. – CommonsWare

+0

@Onik löst immer noch nicht das ursprüngliche Problem, dass Berechtigungen nicht erteilt werden. –

Antwort

0

Mit Developer Preview 6 sollten Sie die DeviceManager-API verwenden. Die Berechtigung zum Neustarten kann nur System-Apps erteilt werden, wenn ich mich nicht irre, und die Android Things-Konsole wird Ihr APK niemals als System-App verpacken.

new DeviceManager().reboot() 
+0

Das ist, was ich benutze, aber wieder per Android Dinge docs, wenn der Aufruf Kontext nicht com.google.android.things.permission.REBOOT Erlaubnis hat, wird es SecurityException werfen und mein Problem ist, dass es nicht die genannten Berechtigungen obwohl Ich habe sie in der Manifest-Datei hinzugefügt. Sie funktionieren nur, wenn ich sie manuell über adb hinzufüge. –

0

Um die Dinge summerize ... Altough es in Android Things readme angegeben ist das:

Alle normalen und gefährlich in Manifest erklärt Berechtigungen der App werden bei der Installation gewährt.

Es ist nicht genug, um Berechtigungen in manifest zu erklären:

<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> 

Sie müssen Neustart das Gerät mit der installierten Anwendung.

BEWERBUNGSRECHTE SIND BEI GERÄT RESTART GEWÄHRT nicht Anwendung neu starten.

+0

Zitieren, was ich in der OP geschrieben habe "Neustart tut nichts", das ist mir sehr bewusst, aber es gewährt immer noch keine Berechtigungen. –

+0

In meinem Fall musste ich Android-App mit den aufgelisteten Berechtigungen in Manifest installieren und das ** Gerät ** neu starten. Es funktionierte. Nach dem Neustart hatte ich zur Laufzeit alle Berechtigungen vergeben. –

Verwandte Themen