安卓ota系统升级,遇到得坑

https://www.jianshu.com/p/eed784d8963f

我是根据这个文章来做的,但是中间的一些细节需要跟服务器沟通,比如你下载下来的安装包是否需要解压,里面包含一些什么文件等,遇到一个坑,就是系统更新完成以后你下载到你手机里面得路径会有你问题,在网上刷到一个帖子说

https://www.jianshu.com/p/6d1bb51b0343

下面评论

这个最后的路径是让你加上/data/media/0/+"自己的文件夹路径"

比如我的/data/media/0/cache/20200106/update.zip

然后就调用

RecoverySystem.installPackage方法就行了,手机就会自动重启就完了

 

后续更新

这里需要获取到系统版本号但是因为各种原因获取不到,https://blog.csdn.net/wechel24/article/details/84349398可以参考这个文章里面

通过反射来获取,输入你需要得名字就可以获得

//反射机制通过SystemProperties获取系统版本号
private static Class<?> mClassType = null;
private static Method mGetIntMethod = null;

private void init() {
    try {
        if (mClassType == null) {
            mClassType = Class.forName("android.os.SystemProperties"); //通过Class.forname获取该Class对象;
            mGetIntMethod = mClassType.getDeclaredMethod("getInt", String.class, int.class);
        }

    } catch (Exception e) {
        e.printStackTrace();
    }
}

private int getInt(String key, int def) {
    init();
    int value = def;
    try {
        Integer v = (Integer) mGetIntMethod.invoke(mClassType, key, def);
        value = v.intValue();
    } catch (Exception e) {
        e.printStackTrace();
    }
    return value;
}

private int getSdkVersion() {
    return getInt("ro.product.firmware", -1);
}

 

最后一个方法中getint里面加入你需要的就可以 了

前提,你可以用adb shell getprop命令获取到系统安装的包名

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值