Install and Uninstall Android applications with PackageInstaller
This is actually very simple.
See PackageInstaller code here:http://android.git.kernel.org/?p=platform/packages/apps/PackageInstaller.git;a=tree;h=refs/heads/donut;hb=refs/heads/donut
Intent filters for such actions are:
<activity android:name=".PackageInstallerActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="content" />
<data android:scheme="file" />
<data android:mimeType="application/vnd.android.package-archive" />
</intent-filter>
</activity>
<activity android:name=".UninstallerActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.DELETE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="package" />
</intent-filter>
</activity>
so if you want to install your .apk file from SD card – just write something like that:
String fileName = Environment.getExternalStorageDirectory() + "/myApp.apk";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");
startActivity(intent);
for uninstallation:
Uri packageURI = Uri.parse("package:com.android.myapp");
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
startActivity(uninstallIntent);
be aware that by default INSTALL_NON_MARKET_APPS option is disabled. You may want to check this option and show user friendly dialog before trying to install the app:
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);
}
enjoy
- 大小: 6.1 KB
分享到:
相关推荐
在本文中,我们将深入探讨如何进行Android应用程序开发,特别是针对手机通信录的实现。这个项目旨在创建一个功能齐全的通信录应用,用户可以添加、删除、编辑联系人,查看联系人列表,以及直接拨打电话和发送短信给...
5. **Android权限**:访问通讯录需要在AndroidManifest.xml文件中声明相应的权限,例如`<uses-permission android:name="android.permission.READ_CONTACTS" />` 和 `<uses-permission android:name="android....
在Android开发领域,掌握一些基础且实用的小程序是提升技能的关键步骤。以下是对标题"15个Android小程序"以及描述中提及的知识点的详细解析: 1. **Intent**: Intent是Android系统中的一个核心概念,它用于启动或...
在Android平台上,开发一个记事本程序涉及到许多关键知识点,这些知识点主要涵盖用户界面(UI)设计、数据存储以及应用程序的逻辑结构。本项目“Android记事本程序代码”提供了一个学习和实践这些技能的机会。 首先...
在Android平台上,开发一个通讯录程序是常见的任务,它涉及到用户界面设计、数据管理以及与系统服务的交互。本资源提供了两个完整的Android通讯录程序的源码,这为开发者提供了宝贵的参考和学习材料。我们将围绕以下...
在Android平台上,开发一个短信筛选和批量删除程序是一项常见的需求,尤其对于那些经常接收大量信息的用户来说。本文将深入探讨如何为Android 2.3到4.4版本的设备构建这样的应用程序,涵盖的主要知识点包括Android ...
本篇文章将深入探讨如何在Android中创建一个简单的数据库程序,包括增加和删除数据的操作。 首先,Android系统支持SQLite数据库,这是一个轻量级的关系型数据库,非常适合移动设备使用。SQLite数据库无需单独的...
在日记本程序中,添加、编辑和删除日记的流程可能涉及多条SQL语句,因此可以包裹在一个BEGIN...COMMIT或BEGIN...ROLLBACK事务中。 总结来说,这个基于Android的个人日记本程序巧妙地融合了SQLite数据库、Java编程和...
"Android程序源码--记事本"是一个典型的Android项目,它包含了一个简单的记事本应用程序的完整源代码,可以帮助开发者深入理解Android应用的构建过程、UI设计、数据存储以及事件处理等核心概念。 首先,这个项目的...
在Android开发领域,源码是学习和提升技术能力的重要资源。这个压缩包包含了8个Android小程序的源码,为开发者提供了宝贵的参考资料。每个程序都包含了详细的注释,可以帮助初学者理解代码逻辑,对于有一定经验的...
在Android开发中,Android Studio是官方推荐的集成开发环境(IDE),它为开发者提供了丰富的工具和功能,使得创建复杂的Android应用程序变得更加便捷。SQLite是一个轻量级的数据库管理系统,被广泛应用于移动设备,...
Android通讯录程序是一个典型的Android应用示例,它展示了如何在Android平台上构建一个功能齐全的联系人管理应用。该程序的核心功能包括添加、删除、查询和修改联系人的信息,这些功能的实现离不开Android系统提供的...
在Android平台上,开发一款记事本程序涉及到许多关键知识点,这些技术涵盖了移动应用开发的各个方面。从标题"android记事本程序"和描述"自己编写的android记事本程序,半年了,分享给大家"我们可以推测,这是一个...
在Android系统中,SQLite被广泛用于持久化应用程序的数据,记账应用利用SQLite来保存用户的账目记录,包括日期、金额、类别、备注等信息。 为了使其他应用程序能够访问和操作这些数据,本程序还运用了Content ...
在Android平台上开发一个记事本程序,是学习移动应用开发的常见起点,尤其对于初学者来说,它提供了一个理解Android SDK、布局设计以及数据存储基础的良好机会。这个“android 记事本程序”就是一个典型的实例,其...
包是 Android 平台中处理 OBB 文件的关键组件,它使得开发者能够在不增加 APK 大小的情况下,提供包含丰富内容的应用。通过理解 OBB 文件的结构、存储位置以及如何在应用中集成和使用,开发者可以充分利用这一功能,...
在Android应用开发中,一个应用程序默认运行在一个单独的进程中,但有时我们需要创建多个进程来实现特定功能,比如隔离资源消耗大的服务或者提高组件的安全性。在这种情况下,就需要掌握有效的多进程通信方法。 **1...
在Android平台上,开发一款相册程序是一项常见的任务,尤其是一款具备加密功能的相册程序,它为用户提供了安全存储私人照片的途径。本项目名为"Android相册程序,包含所有源代码",提供了完整的源码,使开发者可以...
Android的GreenDao是一个高效、轻量级的对象关系映射(ORM)框架,专门设计用于处理Android应用程序中的数据存储。在Android开发中,ORM工具能够极大地简化数据库操作,将Java对象直接映射到SQLite数据库表,避免了...
在Android开发中,数据库的管理是至关重要的,尤其是在构建具有持久化数据存储需求的应用时。本项目专注于在Android环境中实现对远程MySQL数据库的增删改查(CRUD)操作,结合了MySQL数据库、PHP服务器端脚本以及...