安卓手机各种定制化的系统,真的是一言难尽。尤其是国内的这些手机厂商各种定制化的系统,底层修改加上深度定制。也就导致了为了适应国内的手机厂商系统,要做大量的工作。
这几天在准备闺蜜圈的更新发版,再加入了推送之后。由于系统的角标设置问题,最终是通过原生插件实现的。想着多找几个设备测试下实际的效果。
百度的 mtc 平台之前充了 200 块钱,停止做 app 之后里面有一些余额已知没用完,结果再次想使用的时候结果要求进行企业认证。当时就懵逼了。
现在真机租用的价格是真的离谱,一块钱一分钟,没有任何的优惠。
结果第一台机器就遇到了让输入身份证号验证的情况,5 块钱白花了。
这 tm 我咋知道号码是啥,联系客服结果折腾半天都没找到人工,最后加 qq 群才有人联系自己,加微信,把时间返还了。就离谱。不过在测试的时候还是发现了一个问题,那就是竟然在一些手机上无法访问图片。
为了满足华为市场上架要求,增加了一个弹窗用来显示权限申请的提示。实现逻辑:
然而,也正是因为这个代码,貌似导致在 android 11 以上的系统失效了。具体原因可能是安卓权限的细化导致的,已经不在有这个存储权限申请了,取代的是更加细化的权限:
在Android14上与应用交互的用户现在可以授予对其媒体库的部分访问权限(READ_MEDIA_IMAGES和READ_MEDIA_VIDEO)。
新对话框包含以下选项:
● 选择照片和视频: Android14中的新功能。用户选择想要提供给应用的特定照片和视频;
● 全部允许:用户授予对设备上所有照片和视频的完整库访问权限;
● 不允许:用户拒绝所有访问。
如果用户选择了“选择照片和视频”并且应用稍后再次请求READ_MEDIA_IMAGES 或者 READ_MEDIA_VIDEO权限,系统会显示不同的对话框,让用户有机会授予完全访问的权限,维持现状,或者授予对其他照片和视频的访问权限。为了帮助应用支持新的变化,系统引入了一个新的权限READ_MEDIA_VISUAL_USER_SELECTED。
如果应用不声明READ_MEDIA_VISUAL_USER_SELECTED权限,则会发生以下行为:
● 在用户与应用会话期间,将会授予对用户选择的照片和视频的READ_MEDIA_IMAGES 和 READ_MEDIA_VIDEO 临时访问权限。当应用移到后台或者当用户主动杀死应用时,系统最终会拒绝这些权限。此行为就像其他一次性权限一样;
● 如果应用稍后需要访问其他照片和视频,必须手动请求权限重新获得权限。
https://developers.vivo.com/doc/d/6ca290306e294b11ae2d6bf14757fd1d
- Android 10。分区存储、限制访问不可重置的硬件标识符、限制对剪贴板数据的访问权限
- Android 11。强制执行分区存储、单次授权、自动重置权限、软件包可见性。
- Android 12。授予大致位置信息权限、剪贴板访问通知、更安全的组件导出。
- Android 13。细化的媒体权限、内置图片选择器、隐藏剪贴板中的敏感内容、屏蔽不匹配的 Intent、针对 Wifi 设备的新运行时权限、广告 ID 权限。
不得不说因为这些更新导致的一些问题,的确比较棘手。主要是系统版本,厂商定制合并到一块,这个问题就麻烦了。
搜索之后发现uniapp 的 uts 插件:https://ext.dcloud.net.cn/plugin?id=15597
然而,这个插件的问题,貌似在 uniapp 项目中导入之后申请权限没有看到效果,不知道是因为代码问题还是什么其他问题导致的。底层的实现逻辑应该是:https://github.com/getActivity/XXPermissions?tab=readme-ov-file
这个开源项目看起来相对更靠谱一些,后期如果需要喜欢权限申请以及判断,可能还是得将这个项目代码集成到原生插件中实现。
如果项目已经适配了 Android 10 分区存储特性,请在 AndroidManifest.xml 中加入 <manifest> <application> <!-- 告知 XXPermissions 当前项目已经适配了分区存储特性 --> <meta-data android:name="ScopedStorage" android:value="true" /> </application> </manifest> 如果当前项目没有适配这特性,那么这一步骤可以忽略 需要注意的是:这个选项是框架用于判断当前项目是否适配了分区存储,需要注意的是,如果你的项目已经适配了分区存储特性,可以使用 READ_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGE 来申请权限,如果你的项目还没有适配分区特性,就算申请了 READ_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGE 权限也会导致无法正常读取外部存储上面的文件,如果你的项目没有适配分区存储,请使用 MANAGE_EXTERNAL_STORAGE 来申请权限,这样才能正常读取外部存储上面的文件,你如果想了解更多关于 Android 10 分区存储的特性,可以点击此处查看和学习。
这一系列的权限细分,适配起来就比较蛋疼了。
目前暂时的解决方案,针对华为系列的手机进行权限提醒,其他的暂时先不做处理了:
if (plus.os.name != "iOS") { var androidVersion = plus.os.version; console.log('Android版本信息:', androidVersion); console.log('系统信息:', plus.os.name); // this.showToast(androidVersion); let info = uni.getSystemInfoSync(); console.log('手机品牌:' + info.brand); // 输出手机品牌 if (info.brand === 'huawei' ||info.brand === 'honor') { let result = await this.$store.dispatch("permitions/requestPermissions", 'READ_EXTERNAL_STORAGE') if (result !== 1) return } else { // let result =await this.$store.dispatch("permitions/requestPermissions", // 'MANAGE_EXTERNAL_STORAGE') // if (result !== 1) return // 针对安卓13以上不处理 声明权限 } }
一圈下来,钱都花光了要~~
一分钟一块钱,从来没觉得时间这么值钱过~~
42 comments
沙发
我的穷人思维让我第一个想到的念头是去手机店里蹭实体机测试。
关键是没那么多时间去实体店啊,总不能带着电脑去调试吧~~
一块钱一分钟,一天八小时,一小时60分钟,480元一天,一个月就有1万2以上,啧啧,这一台手机比一个普通白领工资都高啊,真赚钱。
上次见到这么离谱的还是驾照考场练车,也是一分钟一块钱。哈哈哈
时薪60哈哈哈,离大谱
是的,真 tm 值钱,之前华为还有免费的测试机,现在貌似找不到了
向专业人士致敬
我就说嘛 维护app还是挺难的 费时费力还费毛爷爷😂
还费❤️
是的 理解
这个太赚钱了嘛!昨晚上刷了一晚上短视频看阿兴做一天1000块的男人,累成狗一天才1000多。
他们这个的确是躺赚啊
他这是怎么做的?
你说一天1000块的男人吗?B站的一个阿婆主,就是干苦力搬砖和沙那些!才20多岁哦,太佩服了!富婆们见了都要流口水,哈哈
酱紫
看完发现一窍不通😂
Android 真的是醉了,为了各自的系统出彩,你改改这,我改改那。一塌糊涂
除此之外还有家长时不时的出来批评教育。
你博客又打不开了?
无法访问此网站检查 xiangming.site 中是否有拼写错误。
DNS_PROBE_FINISHED_NXDOMAIN
好了好了,刚刚改了一下
钱还没挣上呢,倒是花了不少~
😂,你是了解真相的
你能告诉我你的项目啥时候收入吗,我看了快大半年进度,花不完的钱啊,给我职业病都看犯了,啥时候盈利!!!
没有,未来很长一段时间都不会有的。😂
租机应该市场很大,利润很高。我工地这里,有几层楼就是搞租机业务,特别多人
利润率应该还是可以的,本来想着找真机租赁的平台租一台,结果看了下一年起租。直接放弃了。
好辛苦的付出,还是最宝贵的时间成本,不容易啊。
所以,千万不要当程序员,哈哈哈。太惨了
搞个旧手机测试一下,还能永久
问题在于,旧手机可能不会出问题。
你看截图就知道了,基本都是新的系统反而会出问题,andoird 10 以上的各种国产定制系统,所以旧手机解决不了问题啊。
我这里有好几台旧手机,公司的测试手机,但是,在上面一切正常。
之前看到uniapp出了个uts,说是编译成原生native,ios编译成swift,兴高采烈的准备建立项目,发现暂不支持ios。。。
uts的插件,我试了,调不起来。不知道该咋用
还有这种真机租用费用的,涨知识了,另外费用真贵,你还舍得投入进去,为了项目,敬佩了!
做嘛,就得做好不是~~
原来是想~~,有想法有格局,突然发现你的身影很大,哪天你的app被人收购了,我帮你打杂哈
安卓模拟器不能解决真机问题吗?
模拟器用来开发可以,解决特定机型问题没用。连厂商的系统都装不了,所以解决不了问题,嘎嘎
要说真机多的,要么租赁二手平台,要么手机店,要么自媒体手机博主,找个手机博主谈谈合作。
是个好办法,不过没有渠道啊。哈哈哈
这个还是缺少一个统一的标准,不一样的手机,权限还不一样,也太麻烦了啊,耗时耗钱耗精力。
没办法啊,就是这么个生态