幽映每白日,清辉照衣裳。这篇文章主要讲述Android APP 获得权限相关的知识,希望能为你提供帮助。
前言【Android APP 获得权限】所有APP都需要向手机终端请求各种各样的权限,但是 Andorid Studio 项目默认不开启这些权限支持。
本文记录 Andorid APP 以获得网络请求权限为例的静态/动态获取权限的方法。
静态授权在 androidManifest.xml 文件中添加网络请求权限声明。
<
uses-permission android:name="android.permission.INTERNET"/>
即可为 APP 添加静态网络请求权限。
动态授权通过编写 java 代码实现,示例:
//检查是否获得权限
if (ContextCompat.checkSelfPermission(ImageViewShowActivity.this, Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED) {
Toast.makeText(ImageViewShowActivity.this, "未授权!", Toast.LENGTH_SHORT).show();
//没有获得授权,申请授权
if (ActivityCompat.shouldShowRequestPermissionRationale(ImageViewShowActivity.this, Manifest.permission.INTERNET)) {
//弹窗解释为何需要该权限,再次请求权限
Toast.makeText(ImageViewShowActivity.this, "请授权!", Toast.LENGTH_SHORT).show();
//跳转到应用设置界面
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", getPackageName(), null);
intent.setData(uri);
startActivity(intent);
} else {
//不需要解释为何需要授权直接请求授权
Toast.makeText(ImageViewShowActivity.this, "请联系开发人员授权!", Toast.LENGTH_SHORT).show();
ActivityCompat.requestPermissions(ImageViewShowActivity.this, new String[]{Manifest.permission.INTERNET}, 1);
}
} else {
//获得授权
Toast.makeText(ImageViewShowActivity.this, "已授权!", Toast.LENGTH_SHORT).show();
}
测试以下仍以网络请求权限为例。
未静态授权,仅动态授权
文章图片
文章图片
仅静态授权,未动态授权
文章图片
静态授权,并动态授权
文章图片
推荐阅读
- SpringBoot项目添加webapp目录
- 安卓二维码集成
- uni app +vue 引用 百度地图API取位置,VUE用百度地图获取当前位置(城市)
- 钉钉机器人自动关联 GitHub 发送 approval prs
- 在做H5APP时的高清屏解决方案
- Spring ApplicationContext下的refresh()方法
- 记一次腾讯Android一面,拿走不谢!
- appium-java,连接真机启动微信(适应于安卓8.0及以上,新版appium)
- SAS格式化数据集详细图解