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();
}
测试
以下仍以网络请求权限为例。
未静态授权,仅动态授权
仅静态授权,未动态授权
静态授权,并动态授权
作者:Yogile
出处:https://www.cnblogs.com/Yogile/p/13151647.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构