2017-08-07 1 views
1

Ich versuche, die Kamera und Mikro Berechtigungen auf Android zu bekommen. Ich habe in der codenameone_library_required.properties Datei:Codename eine Marshmallow Autorisierung

android.xpermissions=<uses-permission android:name="android.permission.CAMERA" android:required="true"/> <uses-permission android:name="android.permission.RECORD_AUDIO" android:required="true"/> <uses-permission android:name="android.permission.INTERNET" android:required="true"/> 

Diese für ältere Versionen von Android funktioniert, aber nicht in für Eibisch wie erwartet. So ich auf dem Codenamen eines Entwicklerhandbuch lesen, die 23 die Tat für Berechtigungen in späterer Android-Version Ich habe zum Ziel sdk zu fragen, habe ich in den Build-Hinweisen:

android.targetSDKVersion=23 

Aber leider ist dies nicht ausreichend, und wenn Ich starte die Anwendung, die nicht nach den Berechtigungen fragt.

Sollte ich etwas hinzufügen, um nach Berechtigungen zu fragen? Vielleicht die "Display.getInstance(). SetProperty (...)"?

Vielen Dank im Voraus!

Antwort

1

Wenn ich wirklich Ihre Frage verstanden, sollten Sie die Kamera Erlaubnis zur Laufzeit (android Eibisch und oben) wie folgt anfordern:

//to check if the user grant the permission before 
if(ActivityCompat.checkSelfPermission(getActivity().getApplicationContext(), Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { 

    //if it is not the case, request new permission 
    ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.CAMERA},requestCode); 
    return; 
} 

//your camera code is here 

in Codename One Fall, wie @mina sagte, könnten Sie nicht ActivityCompat finden Klasse, so versuchen Sie diesen Block des Codes:

if(!com.codename1.impl.android.AndroidNativeUtil.checkForPermission(Manifest.permission.READ_PHONE_STATE, "This should be the description shown to the user...")){ 

// you didn't get the permission, you might want to return here 
} 
// you have the permission, do what you need 
+0

Ich glaube nicht, dass ich Zugriff auf die ActivityCompat von Codename eins, aber ich könnte falsch liegen. – mina

+0

versuchen Sie dies [link] (https://www.codenameone.com/blog/marshmallow-permissions-in-the-simulator-and-native-code.html) – FarBen

+0

Ja und es ist auch in der Entwickler-Guide –

Verwandte Themen