ContentProvider android:exported = “true”

今天学习使用ContentProvider,发现一个小问题,在其他应用中使用getContentResolver().query()的时候总是报:Permission Denial: opening provider com.xiaohua.android.providertest,经研究发现是manifest.xml文件中privoider的声明中没有加android:exported = “true”(Android 4.4以后要求必须加上这句话),这句话的意思是:是否允许provider被其他应用调用true(允许),(activity也一样哦)
遇到小问题,记录下(啊哦)
代码如下:

<provider
   android:authorities="com.xiaohua.provider"
   android:name=".InfoProvicer"
   android:exported = "true" />
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: android:exported=trueAndroidManifest.xml文件中的一个属性,表示该组件(Activity、Service、BroadcastReceiver、ContentProvider)可以被其他应用程序调用或访问。如果该属性为false,则该组件只能被本应用程序调用或访问。这个属性的设置需要根据具体的业务需求和安全考虑来决定。 ### 回答2: android:exported=true是一个Android应用程序中的一个XML属性。该属性用于指定该应用程序组件是否可以由其他应用程序或系统组件访问。当将该属性设置true时,意味着该组件对其他应用程序可见且可以被调用。如果设置为false,则该组件只能由应用程序自身或具有相同User ID的应用程序访问。 更具体地说,android:exported=true被用于指定四种组件:Activity、Service、Content Provider和Broadcast Receiver。 对于Activity和Service组件,该属性允许其他应用程序或系统组件启动或绑定该组件。例如,一个包含了具有导航功能的Activity的应用程序,可以允许其他应用程序通过Intent来启动并导航。或者一个音乐播放器的Service允许其他应用程序在后台播放音乐。 对于Content Provider组件,该属性允许其他应用程序或系统组件访问该组件提供的数据。例如,一个包含用户联系人数据的Content Provider,允许其他应用程序从该Content Provider中读取联系人信息。 对于Broadcast Receiver组件,该属性允许其他应用程序或系统组件发送Broadcast给该组件。例如,一个具有闹钟功能的应用程序可能接收系统广播来启动闹钟。 在设置android:exported=true时,需要特别小心保护好自己的应用程序数据和安全性。如果没有正确实现权限限制和访问控制,可能会导致其他应用程序或恶意组件访问到敏感数据或进程。 总之,android:exported=true属性为Android应用程序开发者提供了更灵活的选项,可以通过决定哪些组件可以向外部世界进行公开和暴露,来允许其他应用程序与之交互。但也需要慎重考虑数据安全和隐私保护问题,以免引起安全隐患。 ### 回答3: Android中的exported属性表示一个Activity、Service、BroadcastReceiver或Content Provider组件是否可以被其他应用程序或系统的应用程序访问和调用。当exported属性设置true时,表示该组件可以被其他应用程序或系统访问和调用,而当exported属性设置为false时,表示该组件只能被同一应用程序中的其他组件调用。 当exported属性设置true时,如果不谨慎处理,可能会导致一些安全问题,比如数据泄露、安全漏洞等。因此,在设置exported属性时需要考虑到应用程序的安全性,对于不需要暴露给其他应用程序调用的组件,建议将exported属性设置为false。而对于需要被其他应用程序或系统访问和调用的组件,则需要添加相应的权限控制,以防止安全漏洞的出现。 在Android开发过程中,我们需要根据应用程序的要求选择是否需要设置exported属性为true或false,比如一些框架、SDK或者插件组件可能需要被其他应用程序调用,因此需要将其设置true;而一些敏感数据的存储、操作等功能则需要保护好,不允许被其他应用程序或系统调用,因此需要将其设置为false。 综上所述,exported属性在Android应用程序的开发中具有重要的作用,我们需要根据应用程序的实际需求设置其值,并且要考虑到应用程序的安全性,以保障用户数据的安全。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值