判断四大应用程序组件是否安装

判断Activity通过Action

 PackageManager packageManager = context.getPackageManager();
//指定要查找的Activity Action:com.android.phone.action.TOUCH_DIALER
Intent intent = new Intent("com.android.phone.action.TOUCH_DIALER");
//在系统中查询指定的Activity Action
List<ResolveInfo> resolveInfos = packageManager.queryIntentActivities(intent, PackageManager.GET_INTENT_FILTERS);
//如果返回为0 表示没有找到
 if(resolveInfos.size()==0){
     Log.e("TAG", "没有安装");
  }

判断Broadcast通过action

     PackageManager packageManager = context.getPackageManager();
     //指定要查找的Activity Action:com.android.action.MYBROADCAST
     Intent intent = new Intent("com.android.action.MYBROADCAST");
     //在系统中查询指定的BroadCast Action
    List<ResolveInfo> resolveInfos = packageManager.queryBroadcastReceivers(intent, PackageManager.GET_INTENT_FILTERS);
 //如果返回为0 表示没有找到
  if(resolveInfos.size()==0){
        Log.e("TAG", "没有安装");
    }

判断service是否存在
这里service指的是AIDL Service,也就是允许一个Android应用程序访问另外一个应用程序中的类。AIDL Service在调用时需要使用bindService方法进行绑定。如果AIDL Service不存在,则绑定失败,也就是bindService方法会返回false。因此,通过bindService方法就可以判断指定AIDL Service是否存在,

if(!context.bindService(new Intent("com.android.IMyService"),serviceConnection,Context.BIND_AUTO_CREATE)){
            Log.e("TAG", "没有服务");
        }

判断指定的Content Provider只需要根据ContentResolver对象的相应方法的返回值进行判断即可

      Uri uri = Uri.parse("content://mobile.android.regioncontentprovider/cities");
        Cursor cursor = context.getContentResolver().query(uri, new String[]{"city_code as_id", "city_name"}, null, null, null);
        if(cursor==null){
            Log.e("TAG", "没有");
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值