首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
V2EX  ›  问与答

请教 Android 8.0 以上的应用内升级, 安装未知源应用问题

  •  
  •   yuann72 · 42 天前 · 730 次点击
    这是一个创建于 42 天前的主题,其中的信息可能已经有所发展或是发生改变。

    找了几篇文章, 比如 https://www.jianshu.com/p/8882af944ad1 都是说先在 AndroidManifest.xml 中加

    <users-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
    

    然后在调用 APK 安装时, 先判断是否系统大于 8.0 是否有安装未知源权限 mContext.getPackageManager().canRequestPackageInstalls() , 然后就是 dialog 弹窗提醒用户授权, 然后就 new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES), startActivityForResult 之类的

    但是我自己在 Android 8.0 模拟器上运行, 好像只要在 AndroidManifest.xml 加上 android.permission.REQUEST_INSTALL_PACKAGES, 然后直接执行原来的代码直接 new Intent 进行安装 APK, 这时系统会自动弹窗询问用户是否要授权安装未知来源应用权限...就是我上面说的那一套流程

    所以我想问下, 是不是我只要在 AndroidManifest.xml 加上 android.permission.REQUEST_INSTALL_PACKAGES, 剩下的交给系统处理, 我不用自己实现那一套弹窗询问用户的流程? 这种做法在 miui 和 emui 等国内 ui 上运行有没有问题(我自己没有安卓 8.0 以上的手机,所以直接来问问)

    7 回复  |  直到 2019-09-08 08:53:54 +08:00
        1
    ysc3839   42 天前 via Android
    建议看 Android 官方文档或者官方示例代码,你说的方法可能是兼容性考虑,也许在新版本中就失效了。
        2
    HongJay   42 天前
    是的。我记得这个权限只需要系统处理
        3
    shingle   42 天前 via Android
    在安装时系统会有提示弹出,内容是死的。你说的那一套逻辑也有必要,用来告诉用户开启才能安装 /更新应用
        4
    mxalbert1996   42 天前 via Android
    这种行为很多时候是跟 Target API Version 相关的,我猜你的 Target API Version 小于 26 ?
        5
    yuann72   41 天前
    @mxalbert1996 #4 现在 Target API Version 等于 26。现在是遇到了自动更新下载了 apk,但是弹不出安装界面,大概就是之前更新 target api 为 26 后,然后又没有适配 8.0 以上这些特性,没有加 <users-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> 导致的
        6
    yuann72   41 天前
    @HongJay #2
    @shingle #3 系统有自动弹出就行,内容是死的没关系。在判断到有新版本可更新时,会有弹窗提示用户,用户确认后才开始下载新版 apk。在那个弹窗告诉用户就行,或者加个 toast 提示下。我现在想的是能少写几行代码就少写几行,这样才能少出点 bug
        7
    yuann72   41 天前
    @ysc3839 #1 恩,确实要跟官方文档,不然也不用急急忙忙来处理这种兼容问题了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   833 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 22:00 · PVG 06:00 · LAX 15:00 · JFK 18:00
    ♥ Do have faith in what you're doing.