android监听其他程序的安装、卸载或者手动安装、卸载

完整代码:

public class MainActivity extends ActionBarActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);/** * 注册监听,或者在AndroidManifest.xml中配置receive节点 *//*BroadcastReceiver installedReceiver = new BootReceiver(); IntentFilter filter = new IntentFilter(); filter.addAction("android.intent.action.PACKAGE_ADDED"); filter.addAction("android.intent.action.PACKAGE_REMOVED"); filter.addDataScheme("package"); this.registerReceiver(installedReceiver, filter); */}public void install(View v){Log.i("安装应用ss","install");Log.e("sss", "aaaa");Intent intent = new Intent();intent.setAction(Intent.ACTION_VIEW);File file = new File(Environment.getExternalStorageDirectory(),"Html.apk");intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");startActivity(intent);}public void uninstall(View v){String packageName ="com.example.unistallapplication";Log.i("卸载应用","卸载");if(checkPackage(packageName)){//packageInstall observer = new PackageInstallObserver();//pm.installPackage(mPackageURI, observer, installFlags);Intent intent = new Intent();intent.setAction(Intent.ACTION_DELETE);intent.setData(Uri.parse("package:com.example.testnotice"));startActivity(intent);}}public boolean checkPackage(String packageName){boolean flag=false;if(packageName=="" || "".equals(packageName))return false;try {getPackageManager().getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES);return true;} catch (Exception e) {Log.i("error","应用不存在");return false;}}

布局文件activity_main.xml:

     

监听:

import android.support.v7.app.ActionBarActivity;import android.annotation.SuppressLint;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;import android.content.Context;import android.content.Intent;import android.graphics.Color;import android.net.Uri;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.webkit.WebView;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.pm.PackageManager;public class BootReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {PackageManager manager = context.getPackageManager();Log.i("这是监听事件:", "监听");if (intent.getAction().equals(Intent.ACTION_PACKAGE_ADDED)) {String packageName = intent.getData().getSchemeSpecificPart();Toast.makeText(context, "安装成功"+packageName, Toast.LENGTH_LONG).show();}if (intent.getAction().equals(Intent.ACTION_PACKAGE_REMOVED)) {String packageName = intent.getData().getSchemeSpecificPart();Toast.makeText(context, "卸载成功"+packageName, Toast.LENGTH_LONG).show();}if (intent.getAction().equals(Intent.ACTION_PACKAGE_REPLACED)) {String packageName = intent.getData().getSchemeSpecificPart();Toast.makeText(context, "替换成功"+packageName, Toast.LENGTH_LONG).show();}}}

AndroidManifest.xml:

                                                                                                                                                                       
红色的代码是注册监听事件,以上就是所有代码



更多相关文章

  1. android apk的安装
  2. 监听Bluetooth
  3. Android拦截、监听系统返回键事件
  4. android apk的安装
  5. 提升基于英特尔® 架构的 Android* 模拟器的速度
  6. Android学习笔记——Android生命周期
  7. android apk的安装
  8. 提升基于英特尔® 架构的 Android* 模拟器的速度
  9. Android初步(开发环境的搭建)

随机推荐

  1. Android(安卓)发送无序广播
  2. android 工程源码下编译 Android.mk写法
  3. Android中HandlerThread的使用
  4. 15、android 常用文件路径备忘
  5. android 安装配置
  6. android 自定义view 不执行 ondraw的解决
  7. Android(安卓)8. Android(安卓)方法过时
  8. 调试Android第三方应用所需要的工具
  9. AndClear - Android(安卓)Clean-up Manag
  10. android防止控件多次点击