android - 不在 Android Studio 上询问外部存储权限
问题描述
我的名字是汤姆,我正在尝试从外部存储打开一个文件。出于某种原因,它根本没有请求许可?!?!我会感谢任何答案!汤姆。这是我的代码:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){
Toast.makeText(MainActivity.this,"should snd request ",Toast.LENGTH_SHORT).show();
requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, PERMISSION_REQUET_CODE);
}
public void OnRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResult){
if(requestCode == PERMISSION_REQUET_CODE){
if(grantResult[0] == PackageManager.PERMISSION_GRANTED){
Toast.makeText(MainActivity.this,"permission granted!",Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(MainActivity.this,"*** permission not granted! ***",Toast.LENGTH_LONG).show();
finish();
}
}
}
解决方案
确保您还添加了对该Manifest
文件的权限
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.appname">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
...
</manifest>
推荐阅读
- sql - 从 100,101,102 等行创建范围(100-106、107、111-119)
- websphere - 使用 Jython 重新启动 WebSphere AppCluster
- javascript - 在 woocommerce 中向购物车页面添加警报按钮
- r - 将多个列名传递给 data.table 函数中的“by”
- task-parallel-library - 在 .tpl 网站中实施 PSD 设计
- vba - Outlook VBA - 分配给类别时移动邮件
- angular - 有没有办法用新的注入类扩展子组件的构造函数而无需调用 super()?
- vue.js - 对象不支持属性或方法“地图” - IE11
- python-3.x - 套接字和多处理阻塞
- bash - Bash - 从 GZIP 文件中提取匹配字符串运行非常缓慢