2017-01-06 46 views
0

到現在爲止我已經添加了必要的權限在AndroidManifest.xml文件的應用如下爲23 API Android權限和高達

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

正如我已經閱讀了網絡上。對於API 23,應用程序需要在需要時隨時詢問權限。

所以我的問題是,我仍然需要在AndroidManifest.xml文件中添加權限,或者只是在飛行中處理它,或者我必須這樣做。

-Thanks

+1

實施了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"/> 

完整的示例實例運行權限,那麼你必須覆蓋下的API爲好,所以我猜都是。 –

+0

兩者,權限被分類爲危險和非危險。你需要評估所有的權限,看看哪個是哪個權限。如果沒有比你還好的危險。 – JoxTraex

回答

6

你需要做這兩件事。您必須將其添加到清單中並管理它。

0

從Android 6.0(API級別23)開始,用戶在應用程序運行時爲應用程序授予權限,而不是在安裝應用程序時授予應用程序權限。此方法簡化了應用程序安裝過程,因爲用戶在安裝或更新應用程序時無需授予權限。使用下面的代碼來檢查權限

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

對不起,但這並沒有回答作者的問題。 –

+0

這是Android代碼,應該轉換爲在NativeScript中工作 –

3

您可以緩解你的生活和使用nativescript-permissions徵得他的許可運行時(更少的代碼並不會需要經過本地實現) 你仍然要問在AndroidManifest.xml這些權限。

例與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!"); 
    }); 

this app