标签: Android升级

android适配6.0\7.0\8.0升级直接安装APP

android适配6.0\7.0\8.0升级直接安装APP

android的升级功能基本是必不可少的,但是google也是不断地为我们开发人员设置“障碍”,从6.0到7.0,再到8.0都需要作出相应调整。*近加班终于搞出来来了一套可以使用的代码,故写下来,作为笔记,也使各位同行能够指导一下。
如果按照这篇文章,我保你能完成升级功能

前期准备
三个:

权限申请框架AndPermission
AndroidNetworking框架引入
7.0文件适配
一、权限申请框架AndPermission

这个框架是我用过的*好用的,当然我用的也不多,我也写了*新的框架集成

二、AndroidNetworking框架引入

导包

implementation ‘com.amitshekhar.android:android-networking:1.0.2’
1
导包很简单,具体使用在代码中使用吧。

三、7.0文件适配

创建res/xml/file_paths.xml文件
<paths>
<external-path
name=”update”
path=””/>
</paths>

name:一个引用字符串。
path:文件夹“相对路径”,完整路径取决于当前的标签类型。path可以为空,表示指定目录下的所有文件、文件夹都可以被共享。

AndroidManifest.xml文件的”appliction”标签内添加如下语句
<provider
android:name=”android.support.v4.content.FileProvider”
android:authorities=”你的包名.fileprovider”
android:exported=”false”
android:grantUriPermissions=”true”>
<meta-data
android:name=”android.support.FILE_PROVIDER_PATHS”
android:resource=”@xml/file_paths” />
</provider>

android:name:provider你可以使用v4包提供的FileProvider,或者自定义的,只需要在name申明就好了,一般使用系统的就足够了。
android:authorities:类似schema,命名空间之类,后面会用到。
android:exported:false表示我们的provider不需要对外开放。
android:grantUriPermissions:申明为true,你才能获取临时共享权限。

开始升级
直接上代码了
1.一定条件下弹出升级框

new AlertDialog.Builder(DownActivity.this)
.setTitle(“版本更新”)
.setMessage(“发现新的app版本,请及时更新”)
.setNegativeButton(“暂不更新”, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.setPositiveButton(“立即更新”, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {

//弹出进度条,先隐藏前一个dialog
dialog.dismiss();
downApk();
}
})
.create().show();

2.接上面方法,使用AndroidNetworking开始下载

/**
* 下载apk
*/
private void downApk() {
AndPermission.with(DownActivity.this)
.runtime()
.permission(Permission.Group.STORAGE)
.onGranted(permissions -> {
//申请成功后的动作
//显示进度的对话框
mDialog1 = new Dialog(DownActivity.this, R.style.Theme_AppCompat_Dialog_Alert);
View view = DownActivity.this.getLayoutInflater().inflate(R.layout.progress_dialog, null);
mProgressBar = view.findViewById(R.id.pb);
mPrecent = view.findViewById(R.id.tv_precent);
mDialog1.setContentView(view);
mDialog1.show();
String fileName = “football.apk”;
String dirPath3 = Utils.getRootDirPath(DownActivity.this);
final File fs = new File(dirPath3 + “/Download/”);
final String TAG = “AA”;

AndroidNetworking.download(downurl, fs.getAbsolutePath(), fileName)
.setTag(“downloadTest”)
.setPriority(Priority.MEDIUM)
.build()
.setDownloadProgressListener(new DownloadProgressListener() {
@Override
public void onProgress(final long bytesDownloaded, final long totalBytes) {
Log.e(TAG, bytesDownloaded+””);
Log.e(TAG+TAG, totalBytes+””);
runOnUiThread(new Runnable() {
@Override
public void run() {
//TODO long类型相除 根据下载进度,设置进度条
long tv_precent = bytesDownloaded * 100 / totalBytes;
mPrecent.setText((int)tv_precent + “%”);
mProgressBar.setProgress((int) tv_precent);
}
});
}
})
.startDownload(new DownloadListener() {
@Override
public void onDownloadComplete() {

Toast.makeText(DownActivity.this, “下载成功”, Toast.LENGTH_SHORT).show();
//调用方法去安装app
toInstall(DownActivity.this);
// }
}

@Override
public void onError(ANError error) {
// handle error
Log.e(TAG, “onError errorDetail : ” + error.getErrorDetail());
}
});
})
.onDenied(permissions -> {
// Storage permission are not allowed.
})
.start();
}

这里先申请读写内存卡权限,然后使用AndroidNetworking下载文件,下载完成后直接去安装

安装app
/**
* 安装apk
* @param context
*/
private void toInstall(Context context) {
File apkFile = getExternalFilesDir(“DownLoad/football.apk”);
/*android版本大于等于8.0*/
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
/*是否有安装软件的权限*/
boolean canInstall = context.getPackageManager().canRequestPackageInstalls();
if (!canInstall) {
AndPermission.with(DownActivity.this)
.install()
.file(apkFile)
.onGranted(file -> {
installAPK();
})
.onDenied(file -> {
Toast.makeText(context, “请求权限被拒*,无法自动安装软件!!!”, Toast.LENGTH_SHORT).show();
})
.start();
}else{
installAPK();
}
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
/*androi版本小于7.0*/
installAPK();
}
}

判断android版本是否大于等于8.0,如果是则去判断有无安装未知来源权限,如果不是则直接去走安装流程

开始安装
// >=7.0安装
private void install7() {
Intent install = new Intent(Intent.ACTION_VIEW);
File apkFile = getExternalFilesDir(“DownLoad/football.apk”);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
install.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
Uri uriForFile = FileProvider.getUriForFile(DownActivity.this, “包名.fileprovider”, apkFile);
install.setDataAndType(uriForFile, “application/vnd.android.package-archive”);
} else {
install.setDataAndType(Uri.fromFile(apkFile), “application/vnd.android.package-archive”);
}

install.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(install);
}

结尾
我觉得这是一篇很使用的功能,故写下来以后自己可用,也可供各位老师指导。

14 年的 Android 手机如何升级系统?

RT,昨晚爸爸拿了一台 14 年产的手机,型号是酷派 V1-C,系统是 Android 4.4.4 的,问我还能不能用?我看了一下配置,处理器是骁龙 801,运存 3G,勉强还可以用。但是因为系统太老,连微信都无法安装,这个手机型号在网上也没找到刷机包,还有救吗?能否有其它办法升级系统? PS:这手机 2K(2560×1440)超清屏,491PPI,wifi 还支持 5G 频段,物理隔离双系统…这些配置和功能挺超前的啊,前几年都还有其它厂商拿来出吹呢…以前酷派这个品牌确实挺火的,现在怎么感觉在垂死边缘了?

第 1 条附言  ·

看了一下各位的建议,好像基本没戏。APP 老版本我尝试过,虽然可以用,但是部分功能模块会出问题。我是准备给他选一个红米的,想着又便宜性能又好,但因为他现在用的是华为(他不懂手机,平常也就玩玩微信,刷刷抖音啥的),问他想要什么手机,他也只知道华为,我又担心如果不给他买华为,他用着出啥问题还得我背锅。
2000 以内的华为手机各位有什么好推荐的吗?
27 条回复    2021-02-07 04:01:03 +08:00
gam2046
    1

gam2046   107 天前

酷派大概率就节哀吧

Android 4 和 Android 7 的 HAL 层有大改,vendor 几乎没有可能直接重用。要不 HAL 层对应的修改,要不该 vendor 。前者工程量巨大,后者你没源码,有也同样有非常大的工程量。

有这精力,还不如买个新的千元机。

ysc3839
    2

ysc3839   107 天前 via Android

801 的话理论上能跑 Android 10 的。比如三星 S5 仍然可以运行基于 Android 10 的 LineageOS 。
但是对于非热门机型那还是别想了,除非你愿意自己适配。
LiYanHong
    3

LiYanHong   107 天前

看看老点版本的微信还能用不咯
hikari2
    4

hikari2   106 天前

早期安卓分为支持安卓 5 和不支持的,支持安卓 5 的基本上都能上 789
gason406
    5

gason406   106 天前   ❤️ 1

当年还在吹中华酷联米的,*后混出来的也就剩华为小米了
ShallowAi
    6

ShallowAi   106 天前 via Android

14 年能解锁 BL 或者预先解锁的安卓机 只要还有人做包那就能升级

酷派啊 早跑路了 基本没人做了 你要是说小米 2s 都还有安卓 10

PhxNirvana
    7

PhxNirvana   106 天前

801 应该是 32 位 cpu,可以放弃了
Lemeng
    8

Lemeng   106 天前

酷派啊,熟悉又陌生的名字
hfJ433
    9

hfJ433   106 天前   ❤️ 6

老丈人的意思想你买部新手机给他,让你表现一下。
a5b6c7d8
    10

a5b6c7d8   106 天前 via Android

1599 软妹币就可以升级吧

hantsy
    11

hantsy   106 天前

太老了,建议 800 块升级红米。
JensenQian
    12

JensenQian   106 天前

14 年的手机还是换个新的吧,现在手机很便宜了,包括 5G 手机,千元以内或者左右都有挺好的选择,
JensenQian
    13

JensenQian   106 天前

@JensenQian #12 这机子翻了下真的没啥包了,我之前小米 4 刷过安卓 10 的魔趣,但是还是卡的不行,基本没法用,801 现在也该退休了,https://www.wandoujia.com/apps/596157/history 豌豆荚有历史版本的微信,*旧的的 5.1 版本的微信,14 年的应该可以装上去
a570295535
    14

a570295535   106 天前

给你个老版本可以正常登录使用的微信,
解压后安装 apk 即可:
https://xsz.lanzous.com/i7iofjoaaqj
noahhhh
    15

noahhhh   106 天前 via Android

买新机吧
fox0001
    16

fox0001   106 天前

掏腰包更新,RMB 大法好~
systemcall
    17

systemcall   106 天前

酷派的可以放弃了,没有厂家的支持哪来的大改动的第三方?
要是是小米 note 也许有戏,也是 801 32 位,官方有新一些的系统
4.4 默认还是 Dalvik 吧,后面都换成 ART 了。系统的结构都差得远。你要是有个安卓 6.0 的原厂固件,倒是有可能改出来新版本系统
CBS
    18

CBS   106 天前

建议给 l 老丈人买个小米 MAX3
miaomiao888
    19

miaomiao888   106 天前

恢复下出厂,6.7.3 的微信包括支付能用,QQ 国际版能用,ZFB 也能用,抖音好像也可以
USAA
    20

USAA   106 天前

百度
V1-C 刷机包
如果有就有,没有就没有
angrylid
    21

angrylid   106 天前 via Android

两千元内华为手机竞争力不强,要不弄台老旗舰,要不荣耀。
dingwen07
    22

dingwen07   106 天前

2000 以内华为手机,如果不包括荣耀,建议不要考虑。
taobibi
    23

taobibi   106 天前

V1-C 这个手机我有同款。当初这个手机叫酷派伯顿(伯爵?)记不清了。
分享一下我的翻车经验
1.这个手机的刷机包止步于 4.4,都是原厂魔改的。没有第三方适配,大概也是双系统的缘故,适配很困难。
2.网上很多刷机包都是 360 定制版本,内置 360 全家桶
3 。有网友发布过去掉安全系统的版本,可以增大存储空间,总之所有系统都是官方安置 4.4 的魔改。老的 CM 也没有适配过。

至于其他用法。我曾经试过把他放在家里转发短信验证码,但是发现这个机器的安全机制很特别,机会任何读短信的 APP 都读不到短信内容,

只有旧货利用的途径,也不是没有
1.这个手机带自动接听功能,可以设置直接自动接听(设置好白名单接听),或者链接蓝牙音箱自动接听,有时候可以放在家里,远程提醒在家的老婆大人给我暖床(划掉)
2.如果你有电信无限流量套餐,可以开热点当个随身路由器用,这是为数不多的支持换电池的手机,电池淘宝依然有售。支持电信 4G 网,热点网速比较理想。

zhhww57
    24

zhhww57   102 天前

VMOS,用 VMOS 模拟高版本 android,或者安装 xposed 的向下兼容模块
DreamingCTW
    25

DreamingCTW   102 天前

@zhhww57 VMOS 不支持 4.4.4 的
amok
    26

amok   74 天前

酷派的旗舰机都不给升级系统的?同期的荣耀 6,配置还不如这个,官方都升 6.0 了。
zhhww57
    27

zhhww57   62 天前

那就试试看移植到 android5 或者 android6,然后再用 vmos
友情链接: SITEMAP | 旋风加速器官网 | 旋风软件中心 | textarea | 黑洞加速器 | jiaohess | 老王加速器 | 烧饼哥加速器 | 小蓝鸟 | tiktok加速器 | 旋风加速度器 | 旋风加速 | quickq加速器 | 飞驰加速器 | 飞鸟加速器 | 狗急加速器 | hammer加速器 | trafficace | 原子加速器 | 葫芦加速器 | 麦旋风 | 油管加速器 | anycastly | INS加速器 | INS加速器免费版 | 免费vqn加速外网 | 旋风加速器 | 快橙加速器 | 啊哈加速器 | 迷雾通 | 优途加速器 | 海外播 | 坚果加速器 | 海外vqn加速 | 蘑菇加速器 | 毛豆加速器 | 接码平台 | 接码S | 西柚加速器 | 快柠檬加速器 | 黑洞加速 | falemon | 快橙加速器 | anycast加速器 | ibaidu | moneytreeblog | 坚果加速器 | 派币加速器 | 飞鸟加速器 | 毛豆APP | PIKPAK | 安卓vqn免费 | 一元机场加速器 | 一元机场 | 老王加速器 | 黑洞加速器 | 白石山 | 小牛加速器 | 黑洞加速 | 迷雾通官网 | 迷雾通 | 迷雾通加速器 | 十大免费加速神器 | 猎豹加速器 | 蚂蚁加速器 | 坚果加速器 | 黑洞加速 | 银河加速器 | 猎豹加速器 | 海鸥加速器 | 芒果加速器 | 小牛加速器 | 极光加速器 | 黑洞加速 | movabletype中文网 | 猎豹加速器官网 | 烧饼哥加速器官网 | 旋风加速器度器 | 哔咔漫画 | PicACG | 雷霆加速