php 自动下载apk,Android 下载apk 自动 安装
Android N 后,由于不能访问私有路径,需要设置成共享文件
/**
* android N 执行此安装方法
*
* @param context 上下文
* @param file 文件路径
*/
public static void installAPK(Context context, File file) {
// 获取下载好的 apk 路径
Intent intentN = new Intent(Intent.ACTION_VIEW);
// 由于没有在Activity环境下启动Activity,设置下面的标签
intentN.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//参数1 上下文, 参数2 Provider主机地址 和配置文件中保持一致 参数3 共享的文件
Uri apkUri = FileProvider.getUriForFile(context, "world.letsgo.booster.android.FileProvider", file);
//添加这一句表示对目标应用临时授权该Uri所代表的文件
intentN.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intentN.setDataAndType(apkUri, "application/vnd.android.package-archive");
context.startActivity(intentN);
}
/**
* android N 以下安装apk
*/
public static void promptInstall(Context context, Uri date) {
Intent promptInstall = new Intent(Intent.ACTION_VIEW)
.setDataAndType(date, "application/vnd.android.package-archive");
// FLAG_ACTIVITY_NEW_TASK 可以保证安装成功时可以正常打开 app
promptInstall.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(promptInstall);
}
有可能系统下载功能被禁用,故需要判断该系统功能是否可用
/**
* 判断 系统下载功能是否可用
*
* @return true 可用 false 不可用
*/
static boolean downLoadMangerIsEnable(Context context) {
try {
int state = context.getApplicationContext().getPackageManager()
.getApplicationEnabledSetting("com.android.providers.downloads");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
return !(state == PackageManager.COMPONENT_ENABLED_STATE_DISABLED ||
state == PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER
|| state == PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED);
} else {
return !(state == PackageManager.COMPONENT_ENABLED_STATE_DISABLED ||
state == PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER);
}
} catch (Exception e) {
LoggerUtils.debugAndSave(e.getMessage());
}
return false;
}
php 自动下载apk,Android 下载apk 自动 安装相关推荐
- android studio自动设置权限,android studio打包,安装后权限都没有默认打开,如何设置打开?...
android studio打包,安装后权限都没有默认打开,如何设置打开?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ...
- android服务下载apk,android下载apk并安装
1.设置权限 2.业务代码 package com.example.esri.app04.network; import android.app.ProgressDialog; import andr ...
- apk android lite,APK提取器lite
APK提取器lite是一款应用辅助工具,通俗易懂的用户界面,专业的功能设置,助大家一键提取应用安装包.可能会有用户觉得并没多大用处,各种应用通过面对面快传不就完事了吗,何必搞得这么麻烦,其实不然.安装 ...
- android 7.0 更新apk,Android更新apk兼容7.0和8.0
/** * 判断版本 */ private void checkVersionUpdate(final Context mContext, final File file) { if (Build.V ...
- android输入自动补全,Android用户输入自动提示控件AutoCompleteTextView使用方法
一.简介 1.AutoCompleteTextView的作用 2.AutoCompleteTextView的类结构图 也就是拥有EditText的各种功能 3.AutoCompleteTextView ...
- 今日头条视频下载器[android下载源码]
在家无聊,看到赵四大神 写的一个python脚本下载今日头条的工具,最后他还给出了移动端的样子,可惜没有源码,在他的虚心教导下,看完了他的文章,我决定自己撸一个,见笑了: CSDN图片最大值只能传2m ...
- android启动其他apk,Android 启动apk的常用方法
方法一:最直接的就是知道apk的包名和启动类名, 直接启动 Intent mIntent = new Intent(); ComponentName comp = new ComponentName( ...
- android 自动加微信,Android实现微信自动向附近的人打招呼(AccessibilityService)
学习功能强大的AccessibilityService!!! 以下是本人根据自动抢红包的实现思路敲的用于微信自动向附近的人打招呼的核心代码 public class AutoService exten ...
- android 自动静音模式,Android实现定时自动静音小助手
定时静音助手的实现方法,供大家参考,具体内容如下 背景 突发奇想,刚好这学期刚上安卓课程,想设计一个时间助手.工作.学习中经常会被突如其来的电话所打扰,在上班,上课时这突如其来的铃声会惹来别人的反感, ...
最新文章
- RecyclerView smoothScrollToPosition 和 scrollToPosition 的区别
- SAP HUM 嵌套HU初探 IV
- 【Verilog HDL】赋值语句之阻塞赋值方式与非阻塞赋值方式
- oracle表决盘奇数,Oracle 的OCR,表决盘与ASM SPFILE恢复方法
- 归档程序错误。在释放之前仅限于内部连接
- NHibernate.Validator 实体验证框架
- 给数据表中的字段添加约束
- Web 服务器远程控制硬件(Arduino)
- Linux超简单文本编辑器:nano
- treeview 文字垂直方向_word文本排版技巧:改变文字方向的这些方法,你知道吗?...
- leecode-3无重复字符串的最长子字符串C版-滑动窗口
- php-fpm进程的用户组,PHP中的“进程”系列1——PHP-FPM模型
- ASP.Net Jquery 随机验证码 文本框判断
- 深入理解JAVA中的NIO
- 电商业务设计:社交电商产品核心设计
- Linux查看内存占用
- Python爬虫 | Selenium爬取当当畅销图书排行
- linux版本的火狐浏览器,火狐浏览器Linux版本
- Java实现动态规划经典题目
- matlab分数怎么表示,分子为1的分数怎么输入matlab
热门文章
- 生死狙击九天取密(逍遥工作室)
- 基于CH340的一键下载电路
- 2021易烊千玺高考成绩查询,2021高考进入倒计时 考生后援团送上祝福
- HTML5+CSS大作业——明星个人主页(15页) 创作主页
- 二)Python非正式介绍
- Head First HTML 和 CSS
- springBoot中实现语音朗读
- css ---border边框语法
- 无需在线攻击-通过时间块利用 S7-1500 PLC
- Refused to apply style from ‘http://localhost:8080/iconfont.css‘ because its MIME type (‘text/html‘