代码:

import java.io.File;import android.app.Activity;import android.os.Bundle;import android.content.Intent;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;import android.content.pm.PackageManager.NameNotFoundException;import android.content.pm.IPackageInstallObserver;import android.content.pm.IPackageDeleteObserver;import android.content.res.Resources;import android.graphics.drawable.Drawable;import android.net.Uri;import android.os.Environment;import android.os.Handler;import android.os.Message;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ProgressBar;import android.widget.TextView;public class InstallActivity extends Activity {/** Called when the activity is first created. */private Button btn1;private Button btn2;private final int INSTALL_COMPLETE = 1;private final int UNINSTALL_COMPLETE = 1;final static int SUCCEEDED = 1;final static int FAILED = 0;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);btn1 = (Button) findViewById(R.id.btn1);btn2.setOnClickListener(listener1);btn2 = (Button) findViewById(R.id.btn2);btn2.setOnClickListener(listener2);}private OnClickListener listener1 = new OnClickListener() {public void onClick(View v) {String apkPath = Environment.getExternalStorageDirectory()+ "/baidu/" + "UC.apk";String packageName = "com.uc.browser";install(apkPath, packageName);}};private OnClickListener listener2 = new OnClickListener() {public void onClick(View v) {String packageName = "com.uc.browser";uninstall(packageName);}};// 安装public void install(String apkPath, String packageName) {Uri uri = Uri.fromFile(new File(apkPath));int installFlags = 0;PackageManager pm = getPackageManager();try {PackageInfo pi = pm.getPackageInfo(packageName,PackageManager.GET_UNINSTALLED_PACKAGES);if (pi != null) {installFlags |= PackageManager.INSTALL_REPLACE_EXISTING;}} catch (NameNotFoundException e) {Log.d("debug", "NameNotFoundException--" + e.getMessage());}PackageInstallObserver observer = new PackageInstallObserver();pm.installPackage(uri, observer, installFlags, packageName);}// 卸载public void uninstall(String packageName) {PackageManager pm = getPackageManager();PackageDeleteObserver observer = new PackageDeleteObserver();pm.deletePackage(packageName, observer, 0);}class PackageInstallObserver extends IPackageInstallObserver.Stub {public void packageInstalled(String packageName, int returnCode) {Message msg = mHandler.obtainMessage(INSTALL_COMPLETE);msg.arg1 = returnCode;mHandler.sendMessage(msg);}};class PackageDeleteObserver extends IPackageDeleteObserver.Stub {public void packageDeleted(boolean succeeded) {Message msg = mHandler.obtainMessage(UNINSTALL_COMPLETE);msg.arg1 = succeeded ? SUCCEEDED : FAILED;mHandler.sendMessage(msg);}}private Handler mHandler = new Handler() {public void handleMessage(Message msg) {switch (msg.what) {case INSTALL_COMPLETE:int centerTextLabel;Drawable centerTextDrawable = null;if (msg.arg1 == SUCCEEDED) {} else {}if (centerTextDrawable != null) {}break;default:break;}}};}

此代码需要在sdk环境下编译(且本人用的System权限android:sharedUserId="android.uid.system")


源: http://hi.baidu.com/w22ee/item/f995a28bc6858b56e73d1978

更多相关文章

  1. xbmc for android 编译
  2. 学习日记-- Android写文件到SDCard的代码
  3. Android怎样在Framework层使用解锁代码
  4. Android中各类.mk文件的编写
  5. Android(安卓)流水布局
  6. Android利用tcpdump抓包
  7. android 电话录音
  8. Android(安卓)代码监控apk安装,卸载,替换
  9. Android(安卓)studio 57 MP3 音乐播放器 代码上一曲下一曲

随机推荐

  1. 根据电话号码查找人名
  2. android基础知识点复习之短信发送
  3. android studio 0.6.0 下载地址
  4. 手工下载android sdk或者system images等
  5. Android SeekBar
  6. Android SDK Manager 更新SDK问题
  7. mac 编译 Android 系统杂记
  8. Android设计中的.9.png
  9. textAppearance 解答,android系统主题样式
  10. Android 天气预报源码