2017-01-06 48 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