当前位置: 首页 > news >正文

ci框架的网站wordpress 标签链接

ci框架的网站,wordpress 标签链接,wordpress登录密码忘了怎么办,wordpress ezsql三三要成为安卓糕手 一:需要在设置页面手动授予的权限 这类权限涉及到比较高的系统权限或者是用户隐私,应用内部不能直接获取,所以需要跳转系统设置页,让用户自己开启权限 //SYSTEM_ALERT_WINDOW:允许应用在其他应用的…

在这里插入图片描述

三三要成为安卓糕手

一:需要在设置页面手动授予的权限

这类权限涉及到比较高的系统权限或者是用户隐私,应用内部不能直接获取,所以需要跳转系统设置页,让用户自己开启权限

//SYSTEM_ALERT_WINDOW:允许应用在其他应用的上层显示窗口。用户需要在设置中手动授予这个权限
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
Intentintent=newIntent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivity(intent);//REQUEST_INSTALL_PACKAGES:允许应用安装其他 APK 文件。用户需要在设置中手动授予这个权限。
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivity(intent);//WRITE_SETTINGS:允许应用修改系统设置。用户需要在设置中手动授予这个权限。
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
Intentintent=newIntent(Settings.ACTION_MANAGE_WRITE_SETTINGS);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivity(intent);//ACCESS_NOTIFICATION_POLICY:允许应用访问或修改通知策略。用户需要在设置中手动授予这个权限
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY"/>
Intent intent = new Intent(Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
startActivity(intent);//MANAGE_EXTERNAL_STORAGE:允许应用访问所有外部存储文件。用户需要在设置中手动授予这个权限。
//安卓13(api版本33)开始,安卓引入“分区存储模式”以限制应用对存储文件的访问,当前这个权限几乎相当于自由读写所有文件
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
Intent intent = new Intent(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
startActivity(intent);

二:引导用户开启App安装权限

1:声明权限

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2:申请权限

public class SettingsPermissionActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_settings_permission);findViewById(R.id.btn_install).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {boolean b = canInstallPermission();if (b){Toast.makeText(SettingsPermissionActivity.this,"已拥有权限",Toast.LENGTH_SHORT).show();}else {//可能安卓版本低,需要处理申请权限流程;也有可能是8.0以下的版本默认有了这个权限Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);}}});}private boolean canInstallPermission(){boolean install = true;if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {install = getPackageManager().canRequestPackageInstalls();}return install;}
}

3:getPackageManager.canRequestPackageInstalls

这个方法仅支持安卓8.0(API26)以上的版本使用;

作用:能够准确判断出应用是否拥有请求安装包的权限,返回值类型为boolean;

低版本安卓,没有这种专门用于检查应用能否请求安装包的权限机制,可以会造成后续的一些代码(install的值)逻辑错误

例如,即使应用实际上没有获取到在低版本系统上安装应用所需的相关权限(比如 android.permission.INSTALL_PACKAGES ,且在 Android 8.0 之前需要系统签名的应用才拥有该权限 ),由于没有执行 canRequestPackageInstalls() 方法,install 变量仍为 true,可能导致后续安装尝试失败。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {install = getPackageManager().canRequestPackageInstalls();}

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 如果应用已经被授予了请求安装包的权限, 该方法会返回 true ,那么最终 install 的值就是 true
  • 如果应用没有被授予请求安装包的权限 ,该方法会返回 false ,最终 install 的值就是 false

4:修改最小版本号

修改为26,意味着这个应用程序最低支持运行在 Android 8.0(Oreo)系统版本上,

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

三:进阶_去设置界面开启权限

1:代码

public class SettingsPermissionActivity extends AppCompatActivity {private TextView textView;private ActivityResultLauncher<Intent> activityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),new ActivityResultCallback<ActivityResult>() {@Overridepublic void onActivityResult(ActivityResult o) {if (o.getResultCode() == RESULT_OK){if(canInstallPermission()){Toast.makeText(SettingsPermissionActivity.this,"授权成功获取到了App的安装权限",Toast.LENGTH_SHORT).show();textView.setText(canInstallPermission() ? "已获取app安装权限" : "还未获取app安装权限");}}else if (o.getResultCode() == RESULT_CANCELED){Toast.makeText(SettingsPermissionActivity.this,"授权失败",Toast.LENGTH_SHORT).show();}}});@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_settings_permission);findViewById(R.id.btn_install).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {boolean b = canInstallPermission();if (b){//如果是26以下安卓版本还需要去补充逻辑//例如,即使应用实际上没有获取到在低版本系统上安装应用所需的相关权限// (比如 android.permission.INSTALL_PACKAGES ,// 且在 Android 8.0 之前需要系统签名的应用才拥有该权限 ),// 由于没有执行 canRequestPackageInstalls() 方法,install 变量仍为 true,可能导致后续安装尝试失败。Toast.makeText(SettingsPermissionActivity.this,"已拥有权限",Toast.LENGTH_SHORT).show();}else {//可能安卓版本低,需要处理申请权限流程;Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);String uri = "package:" + getPackageName();intent.setData(Uri.parse(uri));activityResultLauncher.launch(intent);}}});textView = findViewById(R.id.tv_info);textView.setText(canInstallPermission() ? "已获取App的安装权限" : "还未获取app安装权限");}/*** 版本低于26返回install返回true* 版本高于26,当前应用没有获得 “请求安装其他应用” 的权限。返回false,就需要用户手动去设置界面获取权限* 版本高于26,当前应用已经获得 “请求安装其他应用” 的权限。返回true* @return*/private boolean canInstallPermission(){boolean install = true;if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {install = getPackageManager().canRequestPackageInstalls();}return install;}
}

2:指定跳转包名_字符串拼接

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(1)拼接包名

指定当前需要跳转的app设置页面的包名,build中可以查询到

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • namespace
    假设你有一个大型 Android 项目,包含多个模块,如一个主应用模块 app ,以及用于支付功能的 payment 模块和用于社交分享的 share 模块。你可以分别设置 namespacecom.example.myappcom.example.myapp.paymentcom.example.myapp.share ,方便构建系统管理各个模块的资源和代码。
  • applicationId
    如果你开发了一个名为 “My Cool App” 的应用,为了在 Android 系统和应用商店中唯一标识它,你可能设置 applicationIdcom.mycompany.mycoolapp 。当你后续对应用进行更新迭代,无论是修复 bug 还是添加新功能,都需要保持这个 applicationId 不变,以便用户能正常接收应用更新。

简而言之:前置更侧重于不同Adroid不同模块的命名和代码的组织,后者更侧重于标识app唯一;建议如果要更改包名,要么一起改,要么都不改

(2)跳转页面选择使用ActivityResultLauncher

回调函数中

  • RESULT_OK 不代表 “权限已授予”
    它仅表示 “用户从设置页面正常返回了当前应用”,可能用户开启了权限,也可能没开启(比如打开设置页面后直接返回)。因此必须通过 canInstallPermission() 再次检查权限状态,才能确认是否授权成功。
  • 也就是ActivityResult中的mResultCode=-1对应RESULT_OK

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • RESULT_CANCELED 的含义
    通常表示 “设置页面被异常关闭”(比如用户未操作就强制退出),此时可视为用户未完成授权,提示 “授权失败”。
  • 也就是ActivityResult中的mResultCode=0对应RESULT_CANCELED

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(3)封装canInstallPermission()

内部代码就是用来判断,当前是否有安装权限的,复用代码

3:整体流程欣赏

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

http://www.dtcms.com/a/506296.html

相关文章:

  • 发外链的论坛网站网站多久才能做起来
  • 有口碑的大连网站建设珠海品牌网站设计
  • 网站 设计公司 温州免费静态网页模板下载
  • 重庆市建筑工程信息官方网站拼多多推广关键词首选帝搜软件
  • 青岛建站服务ui设计师岗位职责
  • 网站设计实训报告小米14系列发布会微博手机影像年
  • 自建站系统站长工具 网站改版
  • html静态网站开发实验网站开发负责人是什么职位
  • 网站后台页面是什么模板建站难度大
  • 建设摩托车官网的网站首页wordpress 做ins
  • 软件外包app网站seo在线诊断分析
  • 做网站怎样设置搜索引擎上市公司网站推广方案
  • 佛山网站制作外包上城网站建设
  • 用php做的网站有哪些如何从网站获取图片做全景图
  • 实用设计网站推荐昆明网站建设加q.479185700
  • 免费商城版网站idc网站模板
  • 爱站网 关键词挖掘工具站长工具网站建设+荆州
  • 做二手房比较好的网站有哪些赤水市住房和城乡建设局网站
  • 做网站推广的技巧西安网站建站品牌
  • 做网站推广销售怎么样桃城网站建设代理
  • html5手机网站织梦模板wordpress 首页慢
  • c 网站开发入门视频网站空间控制面板
  • 手机网站开发计划佛山高端网站制作
  • 网站制作职业wordpress商城教程
  • 上海买二手房做哪个网站好浏览器推广怎么做
  • 公司做的网站计入什么前端网站做中 英文怎么说
  • 路由器带u盘接口的做网站成都旅游必去的地方
  • 特色的佛山网站建设青岛外贸网站建站
  • 炫酷响应式网站设计wordpress百度推送插件
  • 北京网站提升排名wordpress 招聘模块