- 浏览: 112471 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
zhangchixtacbn:
能否发一份代码参考一下,谢谢。554242516@qq.com ...
DWZ整合struts2笔记 -
tuimaochang:
你好,这个有完整的源码吗?里面的对话框/图片资源用我自己的看不 ...
ActivityGroup + ViewPager 实现可滑动的底部Tab -
lintghi:
...
教你如何提高eclipse速度 -
119568242:
...
解决Bitmap读取频发OOM -
thunder_yan:
beat_it_ 写道能不能给份代码啊?上面不就是一个例子吗? ...
DWZ整合struts2笔记
安装:
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) { 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) { e.printStackTrace(); } } catch (MalformedURLException e) { 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系统的应用安装,在系统设置里面有一项,是否安装未知源,所在在软件更新的时候,需要检测这个选项,如果打钩,则只允许安装Market源提供的安装程序,如果没有打钩的话,系统安装应用时会提示用户设置,如果选择设置,设置好后,无法返回安装界面;如果选择取消,则推出安装程序。所以,如果是更新的话,一定要在下载之前就检测许可安装源的设置,或者在下载前检测是否已经下载过新的安装程序,避免重复下载安装程序。
相关的代码如下
int result = Settings.Secure.getInt(getContentResolver(), Settings.Secure.INSTALL_NON_MARKET_APPS, 0); if (result == 0) { // show some dialog here // ... // and may be show application settings dialog manually Intent intent = new Intent(); intent.setAction(Settings.ACTION_APPLICATION_SETTINGS); startActivity(intent); }
发表评论
-
Android 实现圆形Panel ListView
2012-12-04 18:32 1355(效果如上图所示) 其实很简单: 比方说上面的容 ... -
Android WIFI热点工具
2012-10-28 02:09 3432Hello Thunder夜未眠, 午夜时分, 发布一个小工具 ... -
Android 2.3+ 使用StrictMode
2012-09-21 14:47 0ANR窗口产生的原因是多种多样的。程序的主线程因为IO读 ... -
内存泄露 on Android
2012-09-21 14:41 11001.资源对象没关闭造成的内存泄漏 描述: 资源性对象 ... -
Android 高效编程
2012-09-21 14:36 13581.使用本地方法 当 ... -
Android, BaseAdapter 处理大数据量时的优化
2012-09-21 14:23 7399Android优化 最常见的就是ListView, Galle ... -
SQLite优化方法
2012-09-21 13:50 34661.建表优化 SQLite的数据库本质文件读写操作,频 ... -
Android SQLite插入优化
2012-09-21 13:48 1368最初代码如下,直接执行sql语句,外加事务提升性能: ... -
解决Bitmap读取频发OOM
2012-08-25 09:48 1328/** * Bitmap 工具包 * @author ... -
ActivityGroup + ViewPager 实现可滑动的底部Tab
2012-07-01 17:28 6913首先看看布局文件 main.xml <?xml ... -
Android 使用des算法
2012-06-11 14:09 1925import java.security.Key; i ... -
Android 自定义Toast显示图片
2012-06-11 14:08 3031Toast用于向用户显示一些帮助/提示。下面展示了5种效 ... -
Android TabActivity中onKeyDown无效问题
2012-06-11 14:04 35521.当继承TabActivity时,同学们是不是onKeyDo ... -
Android 完全退出
2012-06-11 14:00 2576//通过context获取系统服务,得到Activity ... -
Android:创建网格状的RadioGroup
2012-06-05 10:37 3435Android系统自带的Radio ... -
Android: NDK编程
2012-06-05 10:32 5772为何要用到NDK? 概括来说主要分为以下几种情况: ... -
Android 3D图片切换
2012-06-05 10:25 2539MainActivity package org.wp ... -
android反编译和防止反编译的方法
2012-06-05 10:23 1608android基于java的,而ja ... -
android开发之MediaPlayer+Service MP3播放器
2012-06-02 14:57 4030import java.io.File; impo ... -
Android怎么让一个service开机自动启动
2012-06-02 14:58 1995今天我们主要来探讨android怎么让一个service开机自 ...
相关推荐
在Android系统中,静默安装(Silent Installation)和卸载(Silent Uninstallation)是开发者或者系统管理员在后台执行应用程序的安装与卸载过程,无需用户交互的一种方式。这通常用于批量部署应用或者在设备管理器...
Android APK 的安装卸载是 Android 应用程序生命周期中的重要部分,对于 Android 应用程序的开发、测试和部署都非常重要。下面我们将详细解释 Android APK 的安装卸载机理。 一、Android APK 的安装 Android APK ...
### Android监听应用程序安装和卸载 在Android开发中,有时候我们需要让自己的应用能够感知到其他应用的安装或卸载情况,比如实现应用管理器、安全软件等场景时,就需要用到这种功能。本文将详细介绍如何在Android...
在Android系统中,静默安装和卸载应用程序是一种无需用户交互的方式,通常用于自动化测试、设备管理或系统级服务。这种方式涉及到对系统API的深度利用,因为某些接口是隐藏的,需要通过Android系统的源码来访问。...
电脑上有腾讯管家,作为安卓开发,用真机测试的比较多,鄙人算一个,不喜欢用应用宝,当你卸载了应用...今天又死机了一次,决定做一个当应用宝安装后弹出卸载框的程序 来提示我们卸载这个可恶的应用宝,我用的是华为3x
在Android系统中,静默安装(Silent Installation)和静默卸载(Silent Uninstallation)是指在用户无感知的情况下,通过编程方式自动完成应用程序的安装或卸载过程。这通常需要设备具有root权限,因为常规情况下,...
在Android系统中,静默安装(Silent Installation)和卸载(Silent Uninstallation)是指在用户无感知的情况下,通过编程方式对应用进行安装或卸载的操作。这通常需要设备具有root权限,或者应用程序被内置为系统...
在Android开发中,有时我们需要监控应用程序的安装和卸载事件,以便执行相应的操作,如更新数据库、发送通知或执行其他自定义逻辑。以下是如何在Android中实现这一功能的详细步骤: 首先,我们需要创建一个...
这份压缩包文件"Android 程序的安装、卸载和更新"很可能是包含了一系列关于这个主题的源码示例,用于帮助开发者更深入地理解这些过程的工作机制。下面,我们将详细探讨这些关键知识点。 1. **安装过程**: - 当...
在Android系统中,静默安装(Silent Installation)和卸载是高级用户或者开发者为了批量管理设备上的应用程序而经常使用的功能。通常,这些操作在没有用户交互的情况下进行,因此被称为“静默”。在本篇文章中,我们...
总结,通过AIDL调用Android源码实现静默安装卸载APK涉及到创建AIDL接口、实现服务端、绑定服务、处理权限和API兼容性等问题。这个过程需要对Android系统有深入的理解,并且要注意安全性和最佳实践。在实际应用中,...
应用开发中有需要监听到程序是否安装或者卸载成功,在android系统中,安装和卸载都会发送广播,当应用安装完成后系统会发android.intent.action.PACKAGE_ADDED广播。可以通过intent.getDataString()获得所安装的包名...
在Android系统中,开发者可以通过创建自定义的BroadcastReceiver来监听应用程序的安装和卸载事件。BroadcastReceiver是Android四大组件之一,它能接收到系统或应用发送的广播消息,并执行相应的处理逻辑。以下将详细...
总的来说,Android程序的安装、卸载和更新涉及多个层次的操作,包括文件处理、权限管理、数据存储等。理解这些过程对于开发、维护和使用Android应用至关重要。同时,随着Android系统的不断进化,这些过程可能会有所...
android 实现自我自动静默卸载 妈妈再也不用担心我是流氓了 部分手机安装失败。本人三星i9108可以 小米安装失败。不知道为什么。同个程序。可能是小米没root,但是代码里面没有涉及root相关的 。只是修改了应用权限 ...
对于非开发人员来说,虽然可能不常接触,但掌握如何在命令行下安装和卸载Android应用程序(APP)是很有用的,尤其是在没有图形用户界面或者需要批量处理时。这篇博客“非开发人员如何使用命令行安装和卸载Android ...
Android开发小知识_如何在Android模拟器中安装和卸载程序,很不错的参考手册,希望对你的学习有帮助
综上所述,通过Android的设备管理器API,开发者可以有效地保护应用程序不被普通用户卸载,从而提高应用的安全性和稳定性。然而,这种做法应当遵循最小权限原则,只在必要时使用,以平衡安全性和用户体验。