2017-01-06 6 views
0

bis jetzt habe ich für die App in der AndroidManifest.xml Datei über die notwendigen Berechtigungen schon länger alsAndroid Berechtigungen für API 23 und bis

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.CALL_PHONE" /> 
<uses-permission android:name="android.permission.SEND_SMS" /> 

folgt Als ich im Internet gelesen haben. Für API 23 und höher muss die App im Bedarfsfall nach Berechtigungen fragen.

Also meine Frage ist, dass muss ich noch Berechtigungen in der AndroidManifest.xml-Datei hinzufügen oder einfach nur im Handumdrehen oder muss ich beides tun.

-Danke

+1

Nun, Sie haben auch die unteren APIs zu decken, also ich denke beides. –

+0

Beide Berechtigungen sind als gefährlich und nicht gefährlich eingestuft. Sie müssen alle Ihre Berechtigungen auswerten und sehen, welche welche ist. Wenn keine gefährlich sind, geht es Ihnen gut. – JoxTraex

Antwort

6

Sie müssen beide Dinge tun. Sie müssen es in menifest hinzufügen und es auch handhaben.

0

Ab Android 6.0 (API-Stufe 23) gewähren Benutzer Berechtigungen für Anwendungen, während die App ausgeführt wird, nicht wenn sie die App installieren. Dieser Ansatz optimiert den App-Installationsprozess, da der Benutzer keine Berechtigungen erteilen muss, wenn er die App installiert oder aktualisiert. Verwenden Sie unter Code, um Berechtigungen zu überprüfen

private void checkPermission() { 
    // give whatever permission you want. for example i am taking--Manifest.permission.READ_PHONE_STATE 

    if ((Build.VERSION.SDK_INT >= 23) &&(ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.READ_PHONE_STATE) 
      != PackageManager.PERMISSION_GRANTED)){ 

     requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE}, 2); 
     onRequestPermissionsResult(int, String[], int[]) overriden method 
    }else { 
      //write your code here. if permission already granted 


    } 
} 

@Override 
public void onRequestPermissionsResult(int requestCode, 
             String permissions[], int[] grantResults) { 

    super.onRequestPermissionsResult(requestCode, permissions, grantResults); 

    if (requestCode == 2) { 
     Log.i("resultcode",""+requestCode); 
     if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
      Log.i("resultcode",""+requestCode); 


     } 
     else { 
      Toast.makeText(getApplicationContext(), "Permission Denied", Toast.LENGTH_SHORT).show(); 
     } 
    } 
} 
+0

Sorry, aber das beantwortet die Frage des Autors nicht. –

+0

Dies ist Android-Code, der in NativeScript konvertiert werden soll –

3

Sie können Ihr Leben erleichtern und verwenden nativescript-permissions für die Erlaubnis der Laufzeit fragen (weniger Code und wird nicht durch native Implementierungen gehen müssen) Sie werden nach wie vor für die Berechtigungen in AndroidManifest.xml fragen .

Beispiel für die Laufzeitberechtigungen mit nativescript-ermissions

var permissions = require("nativescript-permissions"); 

permissions.requestPermission([ 
    "android.permission.INTERNET", 
    "android.permission.READ_EXTERNAL_STORAGE", 
    "android.permission.WRITE_EXTERNAL_STORAGE", 
    "android.permission.CALL_PHONE", 
    "android.permission.SEND_SMS" 
], "I need these permissions") 
    .then(function (res) { 
     console.log("Permissions granted!"); 
    }) 
    .catch(function() { 
     console.log("No permissions - plan B time!"); 
    }); 

Beispiele für AndroidManfiest.xml

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.CALL_PHONE"/> 
<uses-permission android:name="android.permission.SEND_SMS"/> 

Voll umgesetzt Beispiel in this app

Verwandte Themen