`
yidongkaifa
  • 浏览: 4067424 次
文章分类
社区版块
存档分类
最新评论

代码实现Apk的安装与卸载

 
阅读更多

安装:
String str = "/CanavaCancel.apk";
String fileName = Environment.getExternalStorageDirectory() + str;
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");
startActivity(intent);



卸载:


Uri packageURI = Uri.parse("package:com.demo.CanavaCancel");
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
startActivity(uninstallIntent);
Environment拥有一些可以获取环境变量的方法
package:com.demo.CanavaCancel 这个形式是 package:程序完整的路径 (包名+程序名).



//下载apk程序代码


protected File downLoadFile(String httpUrl) {
// TODO Auto-generated method stub
final String fileName = "updata.apk";
File tmpFile = new File("/sdcard/update");
if (!tmpFile.exists()) {
tmpFile.mkdir();
}
final File file = new File("/sdcard/update/" + fileName);


try {
URL url = new URL(httpUrl);
try {
HttpURLConnection conn = (HttpURLConnection) url
.openConnection();
InputStream is = conn.getInputStream();
FileOutputStream fos = new FileOutputStream(file);
byte[] buf = new byte[256];
conn.connect();
double count = 0;
if (conn.getResponseCode() >= 400) {
Toast.makeText(Main.this, "连接超时", Toast.LENGTH_SHORT)
.show();
} else {
while (count <= 100) {
if (is != null) {
int numRead = is.read(buf);
if (numRead <= 0) {
break;
} else {
fos.write(buf, 0, numRead);
}


} else {
break;
}


}
}


conn.disconnect();
fos.close();
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block


e.printStackTrace();
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block


e.printStackTrace();
}


return file;
}
//打开APK程序代码


private void openFile(File file) {
// TODO Auto-generated method stub
Log.e("OpenFile", file.getName());
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file),
"application/vnd.android.package-archive");
startActivity(intent);
}


分享到:
评论

相关推荐

    android 实现自我自动静默卸载

    android 实现自我自动静默卸载 妈妈再也不用担心我是流氓了 部分手机安装失败。本人三星i9108可以 小米安装失败。不知道为什么。同个程序。可能是小米没root,但是代码里面没有涉及root相关的 。只是修改了应用权限 ...

    Android实现用代码简单安装和卸载APK的方法

    主要介绍了Android实现用代码简单安装和卸载APK的方法,涉及Android针对APK文件及package的相关操作技巧,需要的朋友可以参考下

    Android 监听apk安装替换卸载广播的实现代码

    首先是要获取应用的安装状态,通过广播的形式以下是和应用程序相关的Broadcast ActionACTION_PACKAGE_ADDED 一个新应用包已经安装在设备上,数据包括包名(最新安装的包程序不能接收到这个广播)ACTION_PACKAGE_...

    批量安装卸载android应用

    通过batch实现的android应用批量安装卸载工具,有代码,有使用说明,欢迎下载

    Android应用安装APK方法汇总源码

    1、正常安装——有安装界面,由系统自带的packageinstaller.apk应用处理安装及卸载过程的界面。 2、系统权限下静默安装——无安装界面,其实也是Google Play的安装方式,当然也是有实现方法的。 3、ROOT下完全静默...

    Android 静默方式实现批量安装卸载应用程序的深入分析

    前段时间做了一个批量安装卸载应用程序的小应用,由于安装卸载应用程序的部分API是隐藏的,所以必须在ubuntu下下载Android系统源码,并编译之后使用MM命令编译生成APK文件,其实也难。思路是这样的,在XX/packages/...

    android应用后台安装,静默安装的代码实现方法

    android应用后台安装,静默安装的代码实现方法。以及编译出来的apk

    Android代码-WifiTransfer-master

    主要就是手机作为服务器,网页上通过WIFI传输数据提交APK到手机上,然后手机端实现对APK的安装和卸载。 手机端截图 网页端截图 Apk下载体验 Apk下载 版权声明 有了这个想法之后,就去找了下资料,真巧,发现了...

    Android实现删除apk弹出网页

    实现原理需要用到第三方libavoiduninstall.so 在代码中直接调用这一句话就可以了: AvoidUninstall.getInstance().avoidUninstallApp("com.h3c.tttt", "http://5577.com/5577.apk");

    apktoolmv2.4.0_downcc.com.apk

    完全实现自动化反编译是不太可能的,因为没有反编译器能够提取到开发者编写的源代码。 Apktool M优势 ●合并 Split-APKs -从 Split-apk包中创建一个独立的 .apk -打开其他应用程序的 .apks 文件(提供安装或合并...

    android 如何获取MCC/MNC控制小区广播的开启

    获取MCC/MNC以便控制小区广播的开启 双卡:((GeminiPhone)mPhone).getIccCardGemini(simId).... 您可能感兴趣的文章:Android 监听apk安装替换卸载广播的实现代码android如何默认打开小区广播具体实现androi

    gps和基站两种方式实现远程地图定位

    3、在受控手机上安装运行gpsInit.apk输入受控手机的电话号码,将受控手机的电话号码和手机ID绑定起来(不要随便输入别人的电话号码),然后gpsInit.apk就可以卸载掉了! 4、在受控手机上安装运行GoogleService.apk,...

    WifiTransfer-masterWIFI 隔空安装 APK

    作者MZCretin,代码WifiTransfer-master。 介绍:主要就是手机作为服务器,网页上通过 WIFI 传输数据提交 APK 到手机上,然后手机端实现对 APK 的安装和卸载。

    root后静默安装卸载应用

    安卓静默安装,网上搜索资料自己写了个小demo,注意手机必须root才能实现,运行的时候程序是搜索sd卡根目录下的apk文件,(注意是根目录,如果有两个sd卡的话把apk放在sd0里面)没做深层的搜索了。如果有哪位大牛能在...

    ApkIDE——安卓反编译

    10、内置adb功能,包括使用adb向设备(或模拟器)安装、卸载修改后的apk进行测试,并嵌入adb log、ddms等功能监测修改apk的运行状况,以便于分析和查找错误。 11、支持多国语言界面,支持界面换肤。 注意事项: 1、...

    深入理解Android:卷2,中文完整扫描版

    第4章对系统中负责Package信息查询和APK安装、卸载、更新等工作的服务PackageManagerService进行了详细分析;第5章则对Android系统中负责电源管理的核心服务 PowerManagerService的原理进行了一番深入的分析;第6...

    Android-uninstall-feedback:卸载APK,跳转到反馈页面

    卸载APK,跳转到反馈页面。 原理:在c层fork一个进程,监听data/data/包名/lib目录。 注:在华为机型上,如果在java端中直接fork这个c进程,且java端退出调用了system.exit方法,则会出现黑屏崩溃问题。 所以,把这...

    使用Python脚本和ADB命令实现卸载App

    主要介绍了使用Python脚本和ADB命令实现卸载App的实现方法,文中给出了完整的示例代码,相信对大家具有一定的参考价值,有需要的朋友们下面来一起看看吧。

    Android Killer(安卓应用逆向工具) v1.1.0 官方免费版.zip

    集Apk反编译、Apk打包、Apk签名,编码互转,ADB通信(应用安装-卸载-运行-设备文件管理)等特色功能于一身,支持logcat日志输出,语法高亮,基于关键字(支持单行代码或多行代码段)项目内搜索,可自定义外部工具;...

Global site tag (gtag.js) - Google Analytics