android动态申请权限问题

逐花客 2017-08-17 11:39:44
String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE};
ActivityCompat.requestPermissions(OkHttpTest.this, permissions, REQUEST_CODE_CONTACT);
if (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
Log.i("asdfg", "没有权限!");
}

这几天在学习OkHttp,涉及到文件的上传下载,下载的时候通过上面代码申请权限,Log打印没有权限,搞不懂为什么,所以来请教一下各位大神。
...全文
904 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
逐花客 2018-01-19
  • 打赏
  • 举报
回复
明白了,谢谢各位
jklwan 2017-08-21
  • 打赏
  • 举报
回复
读写存储卡权限是属于危险权限,6.0以后需要动态申请权限,需要你自己来申请,因为申请权限时基于页面的,okhttp没法进行申请。
想养一只猫 2017-08-18
  • 打赏
  • 举报
回复
android 6.0以后一些危险权限 要在代码中动态申请,不能只在Manifest中添加
hacker_crazy 2017-08-17
  • 打赏
  • 举报
回复
onCreate中: if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){ ActivityCompat.requestPermissions(MainActivity.this, new String[] {Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1); } 回调方法: @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode){ case 1: if (grantResults.length > 0 && grantResults[0] != PackageManager.PERMISSION_GRANTED){ Toast.makeText(this, "拒绝权限将无法使用程序", Toast.LENGTH_SHORT).show(); finish(); } break; default: break; } } 同时记得在manife中添加权限: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 这样就可以了。

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧