1,实现一下这两个类的回掉
class MyPackageInstallObserver extends IPackageInstallObserver.Stub {
@Override
public void packageInstalled(String packageName, int returnCode)
throws RemoteException {
// TODO Auto-generated method stub
Log.i(TAG, "install return code = " + returnCode);
if (returnCode == 1) {
// installedPackagename = packageName;
Message msg = mhander.obtainMessage();
msg.what = Operation.INSTALL_COMPLETEED;
mhander.sendMessage(msg);
installedPKG_Name = packageName;
} else {
Message msg = mhander.obtainMessage();
msg.what = Operation.INSTALL_APK_FAIL;
mhander.sendMessage(msg);
}
}
}
class MyPackageDeleteObserver extends IPackageDeleteObserver.Stub {
@Override
public void packageDeleted(String PkgName, int returnCode)
throws RemoteException {
// TODO Auto-generated method stub
// Message msg = handler.obtainMessage(UNINSTALL_COMPLETE);
/*----------------------------------------------------------*/
/* i am suspicion this send or not ?----???? */
/*----------------------------------------------------------*/
Log.i(TAG, "uninstall return code = " + returnCode);
if (returnCode == 1) {
Message msg = mhander.obtainMessage();
msg.what = Operation.UNINSTALL_COMPLETEED;
mhander.sendMessage(msg);
}
}
}
2,在适当的时候调用它们:
MyPackageInstallObserver observer = new MyPackageInstallObserver();
pm.installPackage(uri, observer, installFlags,
installerPackageName);
MyPackageDeleteObserver observer = new MyPackageDeleteObserver();
pManager.deletePackage(pkgName, observer, 0);
3,附上全部代码
public class AddOrDeletePkg {
private String TAG = "Install";
private Context context = null;
private PopupWindow popupWindow = null;
private static final int HAVE_INSTALLED = 0x1;
TextView noticeTextView = null;
ProgressBar progressBar = null;
Button installButton = null;
Button cancelButton = null;
Button openButton = null;
Button uninstallButton = null;
boolean isinstall_non_market = false; // 非android市场的应用----未测试非android市场的应用;
boolean isinstalled = false;
String installedPKG_Name = "";
LinearLayout layout = null;
private String absoluteApkPath = null;
private void installApk() {
Message msg = mhander.obtainMessage();
msg.what = Operation.INSTALL_APK;
mhander.sendMessage(msg);
ne