Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android permission用法

Android permission用法

編輯:關於Android編程

一、前言         通常,我們開發的應用,只需要使用一些系統定義好的資源,比如網絡訪問,外部文件讀寫,WIFI,SMS等監聽權限,這些都只需要在AndroidManifest.xml中添加<user-permission>XXXXXX</user-permission>即可,但是,AndroidManifest.xml還有一個叫<permission>的tag,大家有考慮過該用法麼?   二、授權與使用         其實,系統的那個權限,就是用的<permission>來定義好的,那麼,誰要想使用,只需要對應的添加<user-permission>即可。          [html]  <permission        android:description="string resource"       android:icon="drawable resource"       android:label="string resource"       android:name="string"       android:permissionGroup="string"       android:protectionLevel=["normal" | "dangerous" |                                 "signature" | "signatureOrSystem"] />                   android:description:  描述這個權限所針對的操作及用戶授予這個權限的後果          android:label:   權限的一個簡短描述          android:name: 權限的唯一標識,一般都是使用 報名加權限名          android:permissionGroup: 權限所屬權限組的名稱          android:protectionLevel: 權限的等級           normal:          是最低的等級,聲明次權限的app,系統會默認授予次權限,不會提示用戶          dangerous:           權限對應的操作有安全風險,系統在安裝聲明此類權限的app時會提示用戶          signature:           權限表明的操作只針對使用同一個證書簽名的app開放          signatureOrSystem:           與signature類似,只是增加了rom中自帶的app的聲明           注:android:name 屬性是必須的,其他的可選,未寫的系統會指定默認值   三、用例子說話         我們舉個例子,用Broadcast即廣播來為例說明:           有兩個APK,apkA端寫了個BroadcastReceiver,用來接收"com.chris.test.ACTION_TEST",在apkB端,寫了個發送這個廣播的代碼,請問:哪端定義權限,哪端使用權限?           當然是apkA端定義權限,而apkB端使用啦。           這裡只例出apkA和apkB的AndroidManifest.xml就行啦:           apkA:   [html]  <manifest xmlns:android="http://schemas.android.com/apk/res/android"       package="com.chris.test"       android:versionCode="1"       android:versionName="1.0" >          <uses-sdk           android:minSdkVersion="10"           android:targetSdkVersion="10" />       <!-- 聲明權限 -->       <permission android:name="com.chris.permission.BROADCAST_PERMISSION" />          <application           android:icon="@drawable/ic_launcher"           android:label="@string/app_name"           android:theme="@style/AppTheme" >           <activity               android:name="com.chris.test.MainActivity">               <intent-filter>                   <action android:name="android.intent.action.MAIN" />                   <category android:name="android.intent.category.LAUNCHER" />               </intent-filter>           </activity>                      <!-- 注冊Broadcast Receiver,並指定了給當前Receiver發送消息方需要的權限 -->           <receiver               android:name="com.chris.test.MyReceiver"               android:permission="com.chris.permission.BROADCAST_PERMISSION" >               <intent-filter>                   <action android:name="com.chris.test.ACTION_TEST" />               </intent-filter>           </receiver>       </application>      </manifest>           在apkA端聲明,並指並BroadcastReceiver發送方的權限;           apkB:   [html]  <manifest xmlns:android="http://schemas.android.com/apk/res/android"       package="com.chris.test.sender"       android:versionCode="1"       android:versionName="1.0" >          <uses-sdk           android:minSdkVersion="10"           android:targetSdkVersion="10" />       <!-- 聲明使用指定的權限 -->       <uses-permission android:name="com.chris.permission.BROADCAST_PERMISSION" />          <application           android:icon="@drawable/ic_launcher"           android:label="@string/app_name"           android:theme="@style/AppTheme" >           <activity               android:name="com.chris.test.sender.MainActivity"               android:label="@string/title_activity_main" >               <intent-filter>                   <action android:name="android.intent.action.MAIN" />                   <category android:name="android.intent.category.LAUNCHER" />               </intent-filter>           </activity>       </application>      </manifest>           在apkB端添加個使用權限即可。
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved