android监听程序安装、卸载
来源:互联网 发布:数据安全应急预案 编辑:程序博客网 时间:2024/04/30 05:22
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:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="安装" android:onClick="install" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="卸载" android:onClick="uninstall" /></LinearLayout>
监听:
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:
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name=".BootReceiver" android:enabled="true"> <intent-filter> <action android:name="android.intent.action.PACKAGE_ADDED" /> <action android:name="android.intent.action.PACKAGE_REMOVED" /> <data android:scheme="package" /> </intent-filter> </receiver> </application>
红色的代码是注册监听事件,以上就是所有代码阅读全文
0 0
- android监听程序安装、卸载
- Android监听程序的安装和卸载
- Android 监听程序的安装和卸载
- Android 监听程序的安装和卸载
- Android 监听程序的安装和卸载
- Android监听程序的安装和卸载
- Android监听程序的安装和卸载
- Android 监听程序的安装和卸载
- Android监听程序的安装和卸载
- Android 监听程序的安装、卸载、替换
- android 监听程序卸载
- Android监听安装卸载
- 程序安装/卸载事件监听
- Android监听应用程序安装和卸载实现程序
- Android监听应用程序安装和卸载实现程序
- android 监听程序的监听和卸载
- Android 监听安装和卸载
- Android 监听安装和卸载
- Java 集合系列02之 Collection架构
- spring batch
- Android UI 优化——使用HierarchyViewer工具
- 函数重载(函数多态)
- xxx不在sudoers文件中,此事将被报告(一个反面解决方案)
- android监听程序安装、卸载
- 利用JDBC批量处理语句
- LeetCode-101. Symmetric Tree(Java)
- Springboot 之 解决IDEA读取properties配置文件的中文乱码问题
- idea maven项目日志配置
- To Add or Not to Add CodeForces
- 2017.7.14. 真 · 高精度
- Java笔试题库之选择题汇总
- HDU-1811 Rank of Tetris(拓扑排序)