- 浏览: 109463 次
- 性别:
- 来自: 昆明
文章分类
- 全部博客 (151)
- 120D02 (5)
- 直升机 (1)
- 我的技术资料收集 (82)
- 的技术资料收集 (4)
- .NET Solution (2)
- ASP.NET (1)
- Linq to sql (1)
- 数据库技术(MS SQL) (2)
- 架构/设计 (1)
- 敏捷/持续集成 (1)
- C#.NET开发 (1)
- Matlab开发 (1)
- WinForm开发 (1)
- 开源技术 (1)
- jQuery (1)
- 我的博文 (4)
- js (2)
- android (2)
- 9. 读书笔记 (1)
- CSS3 (1)
- HTML5 (1)
- JavaScript (5)
- 移动开发 (2)
- 编程心得 (1)
- Linux操作系统 (1)
- (BI)商业智能 (1)
- IOS (1)
- Windows Phone (2)
- C# API (1)
- JQuery系列 (1)
- TFS (1)
- C# (2)
- ExtJs (1)
- .NET (1)
- Nginx (1)
- WCF学习笔记 (1)
- Computer Graphic (1)
- IT产品 (1)
- 工具分享 (1)
- MySelf (1)
- C#专栏 (1)
- 管理 (1)
- 基于Oracle Logminer数据同步 (1)
- 日常 (1)
- 实用工具 (1)
- 网页设计 (1)
- avalon (1)
- flash (1)
- DDD (1)
- 01 技术Android (1)
- WCF (1)
- selenium (1)
最新评论
-
464410531:
三国杀。。。。。。。。。。。。。。。。。。。。。。。。。。。。 ...
实用的职场宝典:不提拔你,就因为你只想把工作做好
最近在配置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”,那我们发送一个为该动作的广播就会调用多个广播接收器。
这时候我们也可以使用自己定义的权限来解决。然后使用
这个方法来发送广播,这样即使动作相同,也只有拥有权限的接收器可以收到。
发表评论
-
Javascript:猜猜弹出的是啥?为啥? - 幸福框架
2013-06-28 13:33 432原帖地址:http://www.cnblogs.com/hap ... -
C#中WindowsForm常见控件的运用 -- - 李晓峰
2013-06-28 13:27 1750原帖地址:http://www.cnblogs.com/liy ... -
海量数据处理利器之Hash——在线邮件地址过滤 - MyDetail
2013-06-27 12:00 654原帖地址:http://www.cnblo ... -
ASP.NET MVC 4 for Visual Studio 2010 下载地址 - 张鸿伟
2013-06-27 11:48 754原帖地址:http://www.cnblogs.com/wei ... -
【ASP.NET Web API教程】6.2 ASP.NET Web API中的JSON和XML序列化 - r01cn
2013-06-26 11:00 919原帖地址:http://www.cnblogs.com/r01 ... -
[珠玑之椟]估算的应用与Little定律 - 五岳
2013-06-26 10:54 640原帖地址:http://www.cnblogs.com/wuy ... -
30行,金额转人民币大写的代码 - 史蒂芬.王
2013-06-26 10:42 1028原帖地址:http://www.cnblogs.com/ste ... -
从银行的钱荒看一个公司的团队建设 产品线过多最终导致最赚钱的项目面临破产 - James Li
2013-06-26 10:36 634原帖地址:http://www.cnblogs.com/Jam ... -
Windows 8 动手实验系列教程 实验6:设置和首选项 - zigzagPath
2013-06-25 13:39 540原帖地址:http://www.cnblogs.com/zig ... -
闲聊可穿戴设备 - shawn.xie
2013-06-25 13:33 617原帖地址:http://www.cnblo ... -
如何使用开源库,吐在VS2013发布之前,顺便介绍下VS2013的新特性"Bootstrap" - 量子计算机
2013-06-25 13:27 870原帖地址:http://www.cnblogs.com/DSh ... -
一步一步将自己的代码转换为观察者模式 - 文酱
2013-06-23 11:36 611原帖地址:http://www.cnblo ... -
iOS内存错误EXC_BAD_ACCESS的解决方法(message sent to deallocated instance) - VicStudio
2013-06-23 11:30 548原帖地址:http://www.cnblogs.com/vic ... -
记录asp.net在IE10下事件丢失排错经过 - Adming
2013-06-23 11:24 715原帖地址:http://www.cnblogs.com/wea ... -
记 FineUI 官方论坛所遭受的一次真实网络攻击!做一个像 ice 有道德的黑客! - 三生石上
2013-06-23 11:18 797原帖地址:http://www.cnblogs.com/san ... -
3、使用Oracle Logminer同步Demo
2013-06-19 10:33 573原帖地址:http://www.cnblogs.com/shi ... -
算法实践——数独的基本解法
2013-06-19 10:27 1454原帖地址:http://www.cnblogs.com/gre ... -
简单实现TCP下的大文件高效传输
2013-06-19 10:21 695原帖地址:http://www.cnblogs.com/sma ... -
avalon - 初步接触
2013-06-18 10:06 786原帖地址:http://www.cnblogs.com/aar ... -
Nginx学习笔记(一) Nginx架构
2013-06-18 09:59 530原帖地址:http://www.cnblogs.com/cod ...
相关推荐
<uses-permission android:name="android.permission.INTERNET" /> ``` 如果没有添加这个权限,程序可能会因无权访问网络而崩溃,所以确保在项目中正确添加了此权限。 总之,Android获取网络图片并显示涉及XML布局...
在Android应用开发中,创建一个自定义相机以实现身份证扫描功能是常见的需求。这涉及到对Android系统的相机API的深入理解和自定义布局设计。本篇将详细介绍如何构建这样一个系统,主要针对Android 6.0(API级别23)...
2. 权限申请:为了读写系统备忘录,需要在AndroidManifest.xml中声明相应的权限,如`android.permission.READ_CALENDAR`和`android.permission.WRITE_CALENDAR`。 3. 数据同步:将用户在自定义日历应用中创建的记事...
本项目提供的"安卓Android源码——自定义本地相册的功能,可以多选图片用.zip"就是一个解决此类问题的示例。下面将详细解析其中涉及的关键知识点。 首先,我们需要理解Android系统的存储结构和权限管理。在Android...
在Android项目的`AndroidManifest.xml`文件中,使用`<permission>`标签声明自定义权限。例如: ```xml <permission android:name="com.example.MY_PERMISSION" android:protectionLevel="signature"/> ``` 其中...
总之,通过学习和实践,开发者可以利用高德地图API实现自定义线路规划,满足特定场景的需求。这个过程中涉及的地图API调用、地理坐标处理、路径规划算法以及用户体验优化等都是提升应用价值的重要环节。对于想要深入...
本教程将深入探讨如何在Android应用中自定义Action和Permission,以及它们在应用程序架构中的作用。 Action是Android Intent系统的核心组成部分,它定义了应用程序可以执行的操作。Intent是一种消息传递机制,用于...
这个“安卓Android源码——仿淘宝自定义键盘.zip”压缩包提供了一个实例,展示了如何模仿淘宝应用中的自定义键盘设计。在深入探讨相关知识点之前,我们需要了解自定义键盘在Android开发中的基本概念。 1. **自定义...
本实例将深入探讨如何在Android中创建和使用自定义权限,这对于理解Android的安全模型至关重要。 一、Android权限基础 在Android中,权限分为两种类型:普通权限(Normal Permissions)和危险权限(Dangerous ...
在Android系统中,权限(Permission)是控制应用访问特定系统资源或执行特定操作的关键机制。本文将深入探讨如何创建和使用自定义权限,基于提供的"自定义permission测试app",包含两个应用程序:`...
8. **权限管理(Permission)**: Android的权限模型保证了应用的安全性。手册会解释如何在Manifest中声明权限,以及如何在运行时请求权限。 9. **多线程和异步处理(Multithreading and Asynchronous Processing)*...
本文将深入探讨如何在Android系统中实现一个自定义输入法,主要基于提供的博客链接——《Android自定义输入法软键盘》。 首先,要创建一个自定义输入法,我们需要创建一个新的Android项目,并在`AndroidManifest....
android:permission="android.permission.BIND_INPUT_METHOD"> <action android:name="android.view.InputMethod"/> android:name="android.view.im.meta" android:resource="@xml/method" /> ``` 5. ...
总结,通过解析和学习"安卓Android源码——安卓Android系统日历日程操作.rar"中的CalendarDemo,我们可以了解到Android系统日历API的使用,包括添加、查询、更新和删除日历事件的方法,以及权限处理和数据操作的流程...
首先,要在需要使用自定义权限的组件上添加`android:permission`属性,指示该组件需要此权限才能运行。然后,调用`checkSelfPermission()`方法检查是否已获得权限,如果未获得,需通过`requestPermissions()`方法向...
2. **权限申请**:确保在AndroidManifest.xml中添加了使用相机所需的权限,如 `<uses-permission android:name="android.permission.CAMERA" />`。 3. **创建Preview**:使用CameraX提供的Preview类,设置预览视图...
<uses-permission android:name="android.permission.CAMERA" /> ``` 没有这个权限,应用无法访问或使用相机硬件。 二、创建CameraPreview类 创建一个继承自SurfaceView的CameraPreview类,这个类负责显示相机的...
`Pro Android`学习系列深入探讨了Android平台的各种方面,其中“permission”部分专门讲解如何处理应用权限。在这个例子中,我们将详细了解Android权限系统的工作原理,以及如何在实际项目中应用它们。 Android权限...
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> ``` 3. **请求下载** 要发起下载,首先需要获取DownloadManager实例: ```java DownloadManager downloadManager = (Download...