判断安装如何判断应用已经安装,如何判断Service,BroastCastReceiver,ContentProvider是否存在...

题记:写这篇博客要主是加深自己对判断安装的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢。

    每日一道理
正所谓“学海无涯”。我们正像一群群鱼儿在茫茫的知识之海中跳跃、 嬉戏,在知识之海中出生、成长、生活。我们离不开这维持生活的“海水”,如果跳出这个“海洋”,到“陆地”上去生活,我们就会被无情的“太阳”晒死。
//判断BroadCastReceiver是不是存在
		PackageManager manager =  getPackageManager();
		//要查找的BroadCastReceiver
		Intent intent = new Intent("com.xiaoqiu.Action.XXXXX");
		
		List<ResolveInfo> resolveInfos = manager.queryBroadcastReceivers(intent, 
				PackageManager.GET_INTENT_FILTERS);
		
		if (resolveInfos.size() == 0) {
			Log.d("debug", "该BroadCast不存在");
		}
		
		//判断包含某个Action的Activity的应用已安装
		Intent i = new Intent("com.xiaoqiu.phone.action.WAKAKA");
		List<ResolveInfo> resolveInfos1 = manager.queryIntentActivities(intent, 
				PackageManager.GET_INTENT_FILTERS);
		if (resolveInfos.size() == 0) {
			Log.d("debug", "该应用没有安装");
		}
		
		//判断AIDL Service是不是存在
		if (!bindService(new Intent("com.xiaoqiu.service"), serviceConnection, Context.BIND_AUTO_CREATE))
		{
			Log.d("debug", "不存在");
		}
		
		//判断指定的ContentProvider是不是存在
		Uri uri = Uri.parse("content://mobile.android.regincontentprovider/cities");
		Cursor cursor = getContentResolver().query(uri, new String[]{"city_code as _id", "city_name"}, 
				null, null, null);
		if (cursor == null) {
			Log.d("debug", "不存在");
		}

文章结束给大家分享下程序员的一些笑话语录: 苹果与谷歌之争就是封闭收费与自由免费思想之争。(别急着把google来膜拜哦?那可是一家公司,以赚钱为目标的公司!当年我Party就是这样把广大劳动人民吸引过来的。今天的结果你们都看到了。)

转载于:https://www.cnblogs.com/xinyuyuanm/archive/2013/05/14/3078746.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ContentProvider 是 Android 系统中的一个组件,它提供了一种标准的接口,用于访问应用程序中的数据。它可以帮助应用程序之间共享数据,提高数据的安全性和可靠性。因此,我认为 ContentProvider 的存在非常重要,它可以方便地管理应用程序中的数据,提高了应用程序的可扩展性和可维护性。 ### 回答2: ContentProvider是Android中重要的组件之一,它提供了数据共享的机制,使得不同应用程序之间可以访问和共享数据。我对ContentProvider的存在持肯定态度。 首先,ContentProvider可以实现数据的安全共享。通过ContentProvider应用程序可以定义自己的数据共享规则,只有经过授权的应用程序才能访问特定的数据。这样可以避免敏感数据被未经授权的应用程序篡改或滥用的风险,提高数据的安全性。 其次,ContentProvider促进了应用程序之间的协作与集成。不同应用程序可以通过ContentProvider来共享数据,避免了数据的重复存储和传输,提高了应用程序的效率和响应速度。例如,地图应用可以通过ContentProvider获取联系人信息,从而实现地图与联系人的集成功能。 另外,ContentProvider还提供了数据的访问和管理的标准接口,降低了开发者的学习成本和开发难度。开发者只需要按照ContentResolver的标准接口编写代码,就可以访问和操作ContentProvider中的数据,无需关心数据的具体存储细节。这样可以提高开发效率和代码的可维护性。 然而,我也认识到ContentProvider的存在也带来了一些问题。例如,如果不合理地使用ContentProvider,可能会导致某些数据被滥用或滥用,从而引发安全隐患。此外,由于内容提供者的数据库操作是在UI线程中进行的,当操作较复杂时,可能会导致应用程序的响应速度下降。 综上所述,我认为ContentProvider的存在是有价值的。它提供了数据共享的机制,推动了应用程序之间的协作与集成,同时也提高了数据的安全性。然而,在使用ContentProvider时,我们需要注意合理使用,避免出现安全隐患,并根据实际情况进行性能优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值