(资料图片)
一、获取Android唯一标识的方法
android10以前的版本可以通过获取imei得到设备的唯一标识,但是android10以后的系统已无法获取到imei。那么我们该如何确定设备呢?查阅了一些资料,个人看来下面的方法最为稳妥:
通过在app外部保存一个guid,每次打开app时读取该guid确定为设备号。保存在app外部,可以防止重新安装app导致guid被清除。
具体代码:
/// /// 机器码帮助类/// public class JQMHelper{ /// /// 获取机器码 /// /// public static string GetJqm() { try { string path = System.IO.Path.Combine(GetPath(), "uuid.txt"); return File.ReadAllText(path); } catch (Exception ex) { } return ""; } /// /// 保存机器码 /// /// public static void SaveJqm(string jqm) { try { string path = System.IO.Path.Combine(GetPath(), "uuid.txt"); File.WriteAllText(path, jqm); } catch (Exception ex) { } } /// /// 获取路径 /// /// private static string GetPath() { try {#if ANDROID string path = ""; if (Android.OS.Environment.IsExternalStorageEmulated) { path = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath; } else { path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments); } Java.IO.File myDir = new Java.IO.File(path + "/myapp"); if (!myDir.Exists()) myDir.Mkdir(); return path + "/myapp/";#endif } catch (Exception ex) { } return ""; }}
调用代码:
//读取保存的机器码string jqm = JQMHelper.GetJqm();if (string.IsNullOrEmpty(jqm)){ jqm = Guid.NewGuid().ToString(); JQMHelper.SaveJqm(jqm);}
此时运行代码,你会发现无法读取和保存guid,什么原因?搞过android的同学肯定知道:缺少了权限。
二、动态授权
官方文档:https://learn.microsoft.com/zh-cn/dotnet/maui/platform-integration/appmodel/permissions?view=net-maui-7.0&tabs=android直接上代码:
//写权限 PermissionStatus status = await Permissions.CheckStatusAsync(); if (status != PermissionStatus.Granted) status = await Permissions.RequestAsync();//弹窗求授权 if (status != PermissionStatus.Granted) { await App.Current.MainPage.DisplayAlert("错误:", "必须给予存储访问权限!请手动给予权限后再重新登录!", "跳转到手动设置页面");#if ANDROID Intent intent = new Intent(Settings.ActionApplicationDetailsSettings); Android.Net.Uri uri = Android.Net.Uri.FromParts("package", AppInfo.Current.PackageName, null); intent.SetData(uri); Android.App.Application.Context.StartActivity(intent);#endif return; }
总结
至此完成。大家是否看出了MAUI的最大优势?
可以直接调用原生API
希望对大家有所帮助。
X 关闭
-
每日播报!MAUI之Android记录设备号+动态授权
一、获取Android唯一标识的方法android10以前的版本可以通过获取imei得到设备的唯一标识,但是android10以后的系统已无法获取到imei。那么我们
-
守住“钱袋子”!警方成功破获一起接触性诈骗案件,涉案金额35万元…… 热闻
守住“钱袋子”!警方成功破获一起接触性诈骗案件,涉案金额35万元……
-
东星医疗:新一代电动腔镜吻合器产品实现批量生产,并已开始向国内市场推广|世界实时
东星医疗12月14日披露投资者关系活动记录表显示,公司新一代电动腔镜吻合器产品,已取得医疗器械注册证和生产许可证,实现了
-
中交集团主要领导拜会巴西总统卢拉
4月13日,中交集团党委书记、董事长王彤宙在上海拜会了巴西总统卢拉,双方就进一步深化基础设施建设等方面的合作进行座谈交流。 王彤宙感谢
-
微动态丨招商证券(06099.HK)将于4月28日举行董事会会议以审批第一季度业绩
格隆汇4月14日丨招商证券公告,董事会会议将于2023年4月28日举行,藉以考虑及批准公司及其附属公司截至2023年3月31日止三个月的未经审计第一季
- 1中越海警开展2023年第一次北部湾海域联合巡逻 环球观速讯
- 2狮子林学生票必须要学生证吗
- 3面向全国征集方案!昌平居庸关将建星夜关城古客栈
- 4中信证券:给予商汤-W(00020.HK)“增持”评级 目标价4.40港元
- 5港股异动 | 长城汽车(02333)午后涨幅扩大逾10% 机构指海外业务或为总销量增长核心 预测今年收入有望达1800亿元
- 6今亮点!人和集团6927万元竞得南宁北湖片区旧改用地 须代建回迁安置房
- 7昆仑万维4月14日盘中涨幅达5%
- 8我的梦想英语作文医生_我的梦想英语作文_全球快报
- 9港股汽车股走强,长城汽车涨超7%-天天热点评
- 10环球快看:巴中科技合作不断结出丰硕成果(国际论坛)