gpt4 book ai didi

java - list 中未识别权限声明

转载 作者:行者123 更新时间:2023-12-01 21:27:54 25 4
gpt4 key购买 nike

我正在尝试获取用户的最后知道位置。为此,我已经在 list xml 文件中声明了以下权限。

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

但是在代码中,它一直显示以下错误:

Code should explicitly check to see if permission is available.

我没有看到这一点,但我还是添加了以下检查。

    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}

这会阻止错误显示,但当我运行应用程序时,它最终会返回。我缺少什么许可?自从我在 Android 上工作以来已经有一段时间了,我不记得必须处理这些额外的检查。 list 许可声明就足够了。请建议我缺少什么。

代码:

LocationManager locationManager;
String provider;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
provider = locationManager.getBestProvider(new Criteria(), false);
Location location = null;

if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
&& ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
Log.i("location", "returned"); // This log will occur
return; //return will occur
}
location = locationManager.getLastKnownLocation(provider); //this is the line that requires permission

Log.i("location", "This log will not occur");
}

最佳答案

在 Android 6.0 中,权限授予和访问发生了变化。在 list 中添加权限不再保证访问。用户现在有权根据自己的选择撤销和授予您权限。

您需要向用户明确请求某些权限。用户可以选择授予您权限,然后您可以继续工作。用户还可以选择拒绝请求,然后您必须弄清楚如何处理这种情况。

授予的许可不是最终的。用户以后仍可以撤销该权限,因此您必须跟踪您的权限。如果权限对于应用程序的性能至关重要,请帮助用户了解在请求权限时该权限对于应用程序正常运行(通过使用对话框/弹出窗口)是必不可少的。

为了更好地理解read this

您所做的是检查您是否拥有必要的权限。request for the permission 没有打破该方法,而是

关于java - list 中未识别权限声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37799212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com