Android安装卸载程序解析[转]
2012-05-09 15:24
519 查看
http://dev.10086.cn/cmdn/wiki/index.php?edition-view-4133-1.html
在Android安装卸载程序的源码中我们知道:
Java代码
< 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>
Java代码
< 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>
因为根据里面的权限我们可以 从sd卡安装一个程序:
Java代码
String fileName = Environment.getExternalStorageDirectory() + "/myApp.apk";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file://" + filePath),"application/vnd.android.package-archive");
//或者
//intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");
startActivity(intent);
Java代码
String fileName = Environment.getExternalStorageDirectory() + "/myApp.apk";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file://" + filePath),"application/vnd.android.package-archive");
//或者
//intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");
startActivity(intent);
Android安装卸载程序的操作中要想卸载一个程序;
Java代码
Uri packageURI = Uri.parse("package:com.android.myapp");
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
startActivity(uninstallIntent);
Java代码
Uri packageURI = Uri.parse("package:com.android.myapp");
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
startActivity(uninstallIntent);
默认是不支持安装非市场程序的 因此判断一下
Java代码
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);
}
注意:package:com.demo.CanavaCancel 这个形式是 package:程序完整的路径 (包名+程序名).
关于卸载时传入包名为 要卸载apk的内部的包名
在Android安装卸载程序的源码中我们知道:
Java代码
< 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>
Java代码
< 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>
因为根据里面的权限我们可以 从sd卡安装一个程序:
Java代码
String fileName = Environment.getExternalStorageDirectory() + "/myApp.apk";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file://" + filePath),"application/vnd.android.package-archive");
//或者
//intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");
startActivity(intent);
Java代码
String fileName = Environment.getExternalStorageDirectory() + "/myApp.apk";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file://" + filePath),"application/vnd.android.package-archive");
//或者
//intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");
startActivity(intent);
Android安装卸载程序的操作中要想卸载一个程序;
Java代码
Uri packageURI = Uri.parse("package:com.android.myapp");
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
startActivity(uninstallIntent);
Java代码
Uri packageURI = Uri.parse("package:com.android.myapp");
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
startActivity(uninstallIntent);
默认是不支持安装非市场程序的 因此判断一下
Java代码
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);
}
注意:package:com.demo.CanavaCancel 这个形式是 package:程序完整的路径 (包名+程序名).
关于卸载时传入包名为 要卸载apk的内部的包名
相关文章推荐
- Android安装卸载程序具体操作方法解析
- Android安装卸载程序具体操作方法解析
- Android安装卸载程序解析
- Android安装卸载程序具体操作方法解析
- Android安装卸载程序解析
- Android安装卸载程序具体操作方法解析
- Android开发片段–命令行安装,卸载,启动,程序(AM,PM)
- Android程序使用代码的安装和卸载!!!
- Android静默安装卸载程序
- Android程序的安装、卸载和更新
- Android程序安装和卸载
- Android监听应用程序安装和卸载实现程序
- android监控程序状态(安装 卸载)
- Android 在程序代码中控制软件的卸载与安装
- Android使用adb指令在虚拟机中安装、卸载apk程序
- Android程序的安装和卸载
- 安装和卸载Android程序
- android程序的安装与卸载
- 监听android程序的卸载,安装,更新替换
- Android 程序的安装、卸载和更新