广播监听手机中应用程序是否安装并卸载

public class PackageReceiver extends BroadcastReceiver {

private static final int PACKAGE_NAME_INDEX = 8;

@Override

public void onReceive(Context context, Intent intent) {

if (intent != null) {

/**安装程序的ACTION为Intent.ACTION_PACKAGE_ADDED*/

if (intent.getAction().equals(Intent.ACTION_PACKAGE_ADDED)) {

String data = intent.getDataString();

if (data == null || data.length() <= PACKAGE_NAME_INDEX) { return; }

String packageName = data.substring(PACKAGE_NAME_INDEX);

if (isAvilible(context, packageName)) {

/**说明安装了应用包*/

Uri uri = Uri.fromParts("package", packageName, null);

/**监听应用卸载的ACTION*/

intent = new Intent(Intent.ACTION_DELETE, uri);

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(intent);

}

else {

Toast.makeText(context, "手机并没有安装该应用!", Toast.LENGTH_SHORT).show();

}

}

}

}

/**检测是否安装了微信的客户端*/

public static boolean isAvilible(Context context, String packageName) {

/**包管理器PackageManager*/

final PackageManager packageManager = context.getPackageManager();

/**所有已安装程序的包信息*/

List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);

/**存储所有已安装程序的包名*/

List<String> pName = new ArrayList<String>();

if (pinfo != null) {

for (int i = 0; i < pinfo.size(); i++) {

String pn = pinfo.get(i).packageName;

pName.add(pn);

}

}

return pName.contains(packageName);

}

}

-----------AndroidManifest.xml中注册广播---------------------------

<receiver android:name=".PackageReceiver">

<intent-filter>

<action android:name="android.intent.action.PACKAGE_ADDED" />

<data android:scheme="package" />

</intent-filter>

</receiver>

时间: 2024-11-07 23:19:04

广播监听手机中应用程序是否安装并卸载的相关文章

Android手机使用广播监听手机收到的短信

我们使用的Android手机在收到短信的时候会发出一条系统广播.该条广播中存放着接收到的短信的详细信息.本文将详细介绍如何通过动态注册广播来监听短信. 注册广播有两种方式,一种是动态注册,另一种是静态注册.动态注册,顾名思义就是在程序运行时注册的,需要用到广播的时候就注册,用完即销毁.静态注是在AndroidManifest.xml中注册的,在<application>中使用<receiver>标签注册. 那么如何创建一个监听短信的广播接收器呢,其实只需要新建一个类,让这个类继承B

求助 利用广播监听 手机拨号 在虚拟机上能运行 真机没法应

部分代码 如下   求大神 解答 public class OutgoingCallReceiver extends BroadcastReceiver { @SuppressLint("ShowToast") @Override public void onReceive(Context context, Intent intent) { String phone = this.getResultData();//得到外拔电话 System.out.println("拨号&

关于 Android ios cocos2d 中的广播监听

1. 关于广播监听 第一次使用是在Android中,broadcast.主要用在2个activity之间进行传递数据,发出一个广播,对这个广播有兴趣的就去监听它,做出相应的回应即可.主要是传递数据,触发机制比较好,跟全局变量或者单例有点像,但是使用场合有区别,比如2个activity之间传递数据,activity这种有生命周期的弄成全局变量和单例就不合适了. 2.Android的广播 发送广播: Intent intent = new Intent("OUR_BLE_CENTRAL_MANAGE

监听手机录音

需求分析: 记录通话过程中的录音,并保存到指定路径~ 知识点:1.手机开机发出广播,广播接受者收到通知,开启service服务 2.Service工作流程: 1.获取手机管理对象· 2.注冊监听器,对应手机状态 3.依据手机状态(振铃.通话.空暇),创建Mediaplay对象,暂停 这里监听手机状态,加入?权限 <uses-permission android:name="android.permission.READ_PHONE_STATE"/> 代码: Telephon

Android之——监听手机开机事件

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47028535 本文中,主要通过监听开机广播来达到监听手机开机状态的操作,在Android中可以通过广播机制来监听一些系统服务和系统级的操作,好了,不多说,直接上代码吧 1.创建广播接收者类BootCompleteReceiver 这个类中的回调方法是手机开机后自动调用,我在这里只是打印出相关日志,具体的业务逻辑大家可以自己根据自己的具体需求去实现. 代码如下: package c

Android开发之使用广播监听网络状态变化

我们经常需要判断网络状态的变化,如有无网络,所以需要监听网络状态的变化,比如网络断开,网络连接给予友好提示.如何监听网络状态的变化呢,最近工作中需要用到这个,于是就用广播机制来实现了网络状态的监听. 使用广播机制来监听网络状态主要涉及到以下几点: 1.需要自己编写个网络广播接收器,该接收器继承BroadcastReceiver类,用来接收系统发出的广播.比如我自己写了个NetStatusReceiver广播接收器.代码如下: package com.log.system; import andr

使用ionic开发时用遇到监听手机返回按钮的问题~

当时用的是ionic开发一个app,需求是,当按下手机的返回按钮,在指定的页面双击退出,而在其他页面点击一次返回到上个页面: 其实用ionic自带的服务就可以解决:  //双击退出   $ionicPlatform.registerBackButtonAction(function (e) {   //判断处于哪个页面时双击退出    if($location.path() =='/message' || $location.path() =='/work' || $location.path(

Android获取手机状态和监听手机来电状态

获取手机状态: import android.content.Context; import android.telephony.TelephonyManager; //获得相应的系统服务 TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); /** * 返回电话状态 * * CALL_STATE_IDLE 无任何状态时 * CALL_STATE_OFFHOOK 接起电话时 *

CC1101 监听空气中载波信号强度(CCA)功能调试通过

阅读本文章前,请先认真阅读数据手册,同时查看我转载的CCA(1)和CCA(2)两篇文章进行扫盲. 最近一直在用CC1101这款无线芯片,今天把CCA功能调试成功了,特来分享一下.我的思路是使能CC1101为CCA功能,GDO2引脚配置为输出载波感应电平,设置好感应电平阈值.现在监听空气中的载波信号强度,如果接收信号强度高于门限时,GDO2为高电平:当接收信号强度低于门限时,GDO2为低电平. CCA初始化函数如下: void  CC1101CCA( void )//配置为载波监听功能 { CC1