`

Android学习笔记——自定义permission

阅读更多
原帖地址:http://www.cnblogs.com/yjiyjige/archive/2013/06/14/3135085.html

最近在配置BroadcastReceiver的时候,发现一条警告,如下图:

 

百度了一下,网上的答案基本都是说把receiver标签的exported属性改为false。这样做确实是可以去掉警告,但是会引起的一个问题就是这个广播不能被其他应用程序所使用。官方文档是这样写的:

Flag indicating whether the given application component is available to other applications.

虽然说这只是一个警告,但本人的强迫症作祟,看着实在难受~~~于是果断查看帮助文档。终于,还是找到了问题的根本原因。

http://developer.android.com/guide/topics/security/permissions.html

警告的原因大概是说,如果没有给Broadreceiver或ContentProvider加上权限的话,那么其它任何程序都是可以无障碍地访问这些组件的。所以最好的解决方法就是加上一个我们自己定义的权限。官方如是说:

To enforce your own permissions, you must first declare them in your AndroidManifest.xml using one or more <permission> tags.

 

然后在我们的receiver中添加相应的权限就行:

 

很好,世界清静了!

如果想让其它程序可以调用这个接收器,那么,那个程序就要引用这个权限了。

 

两个程序都安装之后,我们可以去看看那个调用广播的程序的权限:

 

嗯,这个就是我们自己的权限!

同样的道理,ContentProvider的配置也是类似的,不过ContentProvider可以将读和写两个权限分开配置,更加的细粒度。

 

还有另外一个地方也是别人容易忽略的,就是有时候我们要发送的广播的动作有多个应用是一样的,比如有两个广播接收器的action都是“android.intent.action.EDIT”,那我们发送一个为该动作的广播就会调用多个广播接收器。

这时候我们也可以使用自己定义的权限来解决。然后使用

 

这个方法来发送广播,这样即使动作相同,也只有拥有权限的接收器可以收到。

本文链接

分享到:
评论

相关推荐

    Android学习笔记——获取网络图片并显示

    &lt;uses-permission android:name="android.permission.INTERNET" /&gt; ``` 如果没有添加这个权限,程序可能会因无权访问网络而崩溃,所以确保在项目中正确添加了此权限。 总之,Android获取网络图片并显示涉及XML布局...

    Android自定义相机——身份证扫描界面

    在Android应用开发中,创建一个自定义相机以实现身份证扫描功能是常见的需求。这涉及到对Android系统的相机API的深入理解和自定义布局设计。本篇将详细介绍如何构建这样一个系统,主要针对Android 6.0(API级别23)...

    android——自定义日历+记事本

    2. 权限申请:为了读写系统备忘录,需要在AndroidManifest.xml中声明相应的权限,如`android.permission.READ_CALENDAR`和`android.permission.WRITE_CALENDAR`。 3. 数据同步:将用户在自定义日历应用中创建的记事...

    安卓Android源码——自定义本地相册的功能,可以多选图片用.zip

    本项目提供的"安卓Android源码——自定义本地相册的功能,可以多选图片用.zip"就是一个解决此类问题的示例。下面将详细解析其中涉及的关键知识点。 首先,我们需要理解Android系统的存储结构和权限管理。在Android...

    android 自定义Permission

    在Android项目的`AndroidManifest.xml`文件中,使用`&lt;permission&gt;`标签声明自定义权限。例如: ```xml &lt;permission android:name="com.example.MY_PERMISSION" android:protectionLevel="signature"/&gt; ``` 其中...

    安卓高德地图开发自定义线路规划(按着自己定义的经纬度规划线路)

    总之,通过学习和实践,开发者可以利用高德地图API实现自定义线路规划,满足特定场景的需求。这个过程中涉及的地图API调用、地理坐标处理、路径规划算法以及用户体验优化等都是提升应用价值的重要环节。对于想要深入...

    Android自定义action与permission_java_action_

    本教程将深入探讨如何在Android应用中自定义Action和Permission,以及它们在应用程序架构中的作用。 Action是Android Intent系统的核心组成部分,它定义了应用程序可以执行的操作。Intent是一种消息传递机制,用于...

    安卓Android源码——仿淘宝自定义键盘.zip

    这个“安卓Android源码——仿淘宝自定义键盘.zip”压缩包提供了一个实例,展示了如何模仿淘宝应用中的自定义键盘设计。在深入探讨相关知识点之前,我们需要了解自定义键盘在Android开发中的基本概念。 1. **自定义...

    Android自定义权限permission

    本实例将深入探讨如何在Android中创建和使用自定义权限,这对于理解Android的安全模型至关重要。 一、Android权限基础 在Android中,权限分为两种类型:普通权限(Normal Permissions)和危险权限(Dangerous ...

    自定义permission测试app

    在Android系统中,权限(Permission)是控制应用访问特定系统资源或执行特定操作的关键机制。本文将深入探讨如何创建和使用自定义权限,基于提供的"自定义permission测试app",包含两个应用程序:`...

    Android开发手册——API函数详解.zip_安卓API

    8. **权限管理(Permission)**: Android的权限模型保证了应用的安全性。手册会解释如何在Manifest中声明权限,以及如何在运行时请求权限。 9. **多线程和异步处理(Multithreading and Asynchronous Processing)*...

    Android自定义输入法软键盘

    本文将深入探讨如何在Android系统中实现一个自定义输入法,主要基于提供的博客链接——《Android自定义输入法软键盘》。 首先,要创建一个自定义输入法,我们需要创建一个新的Android项目,并在`AndroidManifest....

    Android-Android自定义键盘数字键盘和字母键盘

    android:permission="android.permission.BIND_INPUT_METHOD"&gt; &lt;action android:name="android.view.InputMethod"/&gt; android:name="android.view.im.meta" android:resource="@xml/method" /&gt; ``` 5. ...

    安卓Android源码——安卓Android系统日历日程操作.rar

    总结,通过解析和学习"安卓Android源码——安卓Android系统日历日程操作.rar"中的CalendarDemo,我们可以了解到Android系统日历API的使用,包括添加、查询、更新和删除日历事件的方法,以及权限处理和数据操作的流程...

    android 理解和使用自定义权限

    首先,要在需要使用自定义权限的组件上添加`android:permission`属性,指示该组件需要此权限才能运行。然后,调用`checkSelfPermission()`方法检查是否已获得权限,如果未获得,需通过`requestPermissions()`方法向...

    Android-Android自定义相机

    2. **权限申请**:确保在AndroidManifest.xml中添加了使用相机所需的权限,如 `&lt;uses-permission android:name="android.permission.CAMERA" /&gt;`。 3. **创建Preview**:使用CameraX提供的Preview类,设置预览视图...

    android自定义相机带取景框

    &lt;uses-permission android:name="android.permission.CAMERA" /&gt; ``` 没有这个权限,应用无法访问或使用相机硬件。 二、创建CameraPreview类 创建一个继承自SurfaceView的CameraPreview类,这个类负责显示相机的...

    Pro Android学习:permission例子

    `Pro Android`学习系列深入探讨了Android平台的各种方面,其中“permission”部分专门讲解如何处理应用权限。在这个例子中,我们将详细了解Android权限系统的工作原理,以及如何在实际项目中应用它们。 Android权限...

    Android DownloadManager和自定义下载功能

    &lt;uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /&gt; ``` 3. **请求下载** 要发起下载,首先需要获取DownloadManager实例: ```java DownloadManager downloadManager = (Download...

Global site tag (gtag.js) - Google Analytics