请求许可

时间:2017-11-22 17:39:41

标签: android

我知道在latestndroid版本中,应用程序必须要求运行时权限,但权限是否应该在manifest.xml权限列表中? 如果我需要使用gps而且我有这个代码

 if (ContextCompat.checkSelfPermission(this,
                Manifest.permission.ACCESS_FINE_LOCATION)
                != PackageManager.PERMISSION_GRANTED) {

            ActivityCompat.requestPermissions(this,
                    new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
                    101);
        }
        else{

            Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
            if(location != null){

            }
            else{
                locationManager.requestLocationUpdates(
                        LocationManager.GPS_PROVIDER,
                        0,
                        0, locationListener);
            }
        }

是否必须在manifest.xml上添加权限?

 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

4 个答案:

答案 0 :(得分:0)

  

权限是否应该在manifest.xml权限列表中?

  

是否必须在manifest.xml上添加权限?

是的,虽然您只需要一个REPLACE(STUFF(fieldname,1,CHARINDEX('- ',fieldname),''),REVERSE(LEFT(REVERSE(fieldname),CHARINDEX(' ',REVERSE(fieldname)))),'') ,但不需要两个同一权限。

答案 1 :(得分:0)

是的,这是强制性的,因为在较低版本的Android(&lt; = 5.1)上不需要请求权限。

请参阅此文档:

https://developer.android.com/training/permissions/requesting.html

答案 2 :(得分:0)

您必须直接向用户请求权限。这些被认为是&#34; Dangerous&#34;权限。需要检查以确保您已被用户授予,如果没有请求访问权。

示例:

int permissionCheck =    ContextCompat.checkSelfPermission(thisActivity,Manifest.permission.READ_CONTACTS);`

ActivityCompat.requestPermissions(thisActivity,
            new String[]{Manifest.permission.READ_CONTACTS},
            MY_PERMISSIONS_REQUEST_READ_CONTACTS);

有关详细信息,请参阅以下内容。 https://developer.android.com/training/permissions/requesting.html

答案 3 :(得分:0)

是 这对用户来说是一个不错的安全程序,因为这会阻止“坏”开发人员访问用户手机上的所有内容。 这是从6.0棉花糖版本设计的。在此之前,当下载应用程序时,只有Play商店会提示用户具有应用程序可以访问的功能/数据。现在它非常严格,用户可以合理地控制他们的数据。