[android开发篇]使用系统权限流程

1 声明权限https://developer.android.com/training/permissions/declaring.html

每款 Android 应用都在访问受限的沙盒中运行。如果应用需要使用其沙盒外的资源或信息,则必须请求相应权限。您可以在应用清单中列出相应的权限,声明应用需要此权限。

根据权限的敏感性,系统可能会自动授予权限,或者需要由设备用户对请求进行许可。例如,如果您的应用请求打开设备手电筒的权限,系统将自动授予该权限。但如果您的应用需要读取用户联系人,系统会要求用户授权。用户需要在安装应用(运行 Android 5.1 和更低版本的设备)或者运行应用(运行 Android 6.0 和更高版本的设备)时授予权限,具体取决于平台版本。

确定您的应用需要哪些权限



开发应用时,您应注意应用何时使用需要权限的功能。通常,在使用并非由自身创建的信息资源、执行会影响设备或其他应用行为的操作时,应用都需要获得相应的权限。例如,如果应用需要访问互联网、使用设备摄像头或者打开或关闭 WLAN,应用需要获得相应的权限。要查看系统权限的列表,请参阅正常权限和危险权限

您的应用仅需要获得其直接执行的操作的权限。如果应用请求另一应用执行任务或提供信息,则不需要获得相应权限。例如,如果您的应用需要读取用户的地址簿,则需要 READ_CONTACTS 权限。但如果您的应用使用一个 intent 从用户的“联系人”应用中请求信息,则您的应用不需要任何权限,但“联系人”应用确实需要该权限。如需了解详细信息,请参阅考虑使用 intent

向清单添加权限



要声明您的应用需要权限,请将 <uses-permission> 元素置于您的应用清单中,作为顶级 <manifest> 元素的子项。例如,需要发送短信的应用可在清单中添加以下代码行:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"        package="com.example.snazzyapp">

    <uses-permission android:name="android.permission.SEND_SMS"/>    

    <application ...>        ...    </application>

</manifest>

系统在您声明权限之后的行为取决于权限的敏感性。如果权限不影响用户隐私权,系统会自动授权。如果权限可能涉及对敏感用户信息的访问,系统将要求用户审批请求。要了解有关不同种类权限的详细信息,请参阅正常权限和危险权限

时间: 2024-08-02 17:17:40

[android开发篇]使用系统权限流程的相关文章

Android开发之清理系统缓存错误

最近在做清理系统缓存功能时,用到以下方法 PackageManager pm = context.getPackageManager(); Method localMethod = pm.getClass().getMethod("freeStorageAndNotify", Long.TYPE, IPackageDataObserver.class); Long localLong = Long.valueOf(getEnvironmentSize() - 1L); Object[]

Android开发之获取系统12/24小时制的时间

//通过DateFormat获取系统的时间 String currentTime=DateFormat.format("yyyy-MM-dd hh-mm-ss", new Date()).toString(); currentTime="通过DateFormat获取的时间:\n"+currentTime; //通过SimpleDateFormat获取24小时制时间 SimpleDateFormat sdf=new SimpleDateFormat("yyy

[转载]如何使Android应用程序获取系统权限来修改系统时间

在 android 的API中有提供 SystemClock.setCurrentTimeMillis()函数来修改系统时间,可惜无论你怎么调用这个函数都是没用的,无论模拟器还是真机,在logcat中总会得到"Unable to open alarm driver: Permission denied ".这个函数需要root权限或者运行与系统进程中才可以用. 本来以为就没有办法在应用程序这一层改系统时间了,后来在网上搜了好久,知道这个目的还是可以达到的. 第一个方法简单点,不过需要在

[android开发篇]权限分类:正常权限和危险权限

https://developer.android.com/guide/topics/security/permissions.html#normal-dangerous 系统权限 本文内容 安全架构 应用签署 用户 ID 和文件访问 使用权限 正常权限和危险权限 权限组 定义和实施权限 自定义权限建议 ...在 AndroidManifest.xml 中 ...发送广播时 其他权限实施 URI 权限 关键类 Manifest.permission Manifest.permission_gro

[android开发篇] 权限

Android 应用采用 Java 编程语言编写.Android SDK 工具将您的代码 - 连同任何数据和资源文件 - 编译到一个 APK:Android 软件包,即带有 .apk 后缀的存档文件中.一个 APK 文件包含 Android 应用的所有内容,它是基于 Android 系统的设备用来安装应用的文件. 安装到设备后,每个 Android 应用都运行在自己的安全沙箱内: Android 操作系统是一种多用户 Linux 系统,其中的每个应用都是一个不同的用户: 默认情况下,系统会为每个

[android开发篇][android studio 和elipse都需要的流程 android sdk的安装

第三步.下载并安装AndroidSDK 前面两步,我们已经配置了JDK变量环境,并安装好了Eclipse,通过这两步之后Java的开发环境就准备好了,如果我们只是开发普通的JAVA应用程序的话,那么到这里就可以了.但如果我们要通过Eclipse来开发Android应用程序的话,那么我们还需要下载Android SDK(Software Development Kit)和在Eclipse上安装ADT插件. 首先,下载Android SDK Tools,翻过墙的朋友可以去Google Android

android 开发之 - 调用系统闪光灯

Android开发调用系统闪光灯. 添加权限: <!-- 调用闪光灯权限 --> <uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-permission android:name="android.permission.CAMERA"/> <uses-feature android:name="android.hardwar

Thinkphp3.2新手篇之系统运行流程1

如果公司使用的tp框架,那么作为新人在首先会被要求了解tp的系统运行流程,本文章意在帮助新童鞋快速了解tp系统流程.流程说明按照tp手册给出的进行(序号也相同,方便大家查看): 1.用户URL请求,2.调用应用入口文件(这里以index.php为例) 大部分网站是利用url重写隐藏了index.php的,这里的方法请查看tp手册.首先执行index.php, 1 // 应用入口文件 2 3 // 检测PHP环境 4 if(version_compare(PHP_VERSION,'5.3.0','

Android开发之调用系统图库及相机

在Android开发中经常会用到图片的上传功能,一般常用的是调用Android系统自带的图库及拍照功能.示例代码如下: Java代码: public class TestActivity extends Activity { public final static int PHOTO_ZOOM = 0; public final static int TAKE_PHOTO = 1; public final static int PHOTO_RESULT = 2; public static f