日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android -- 自定义权限

發布時間:2023/12/1 Android 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android -- 自定义权限 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在android系統的安全模型中,應用程序在默認的情況下不可以執行任何對其他應用程序,系統或者用戶帶來負面影響的操作。如果應用需要執行某些操作,就需要聲明使用這個操作對應的權限。 (在manifest文件中 添加標記)。

app可以自定義屬于自己的permission 或屬于開發者使用的同一個簽名的permission。定義一個permission 就是在menifest文件中添加一個permission標簽。?

<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 :對權限的描述,一般是兩句話,第一句話描述這個權限所針對的操作,第二句話告訴用戶授予app這個權限會帶來的后果?
  • android:label: 對權限的一個簡短描述?
  • android:name :權限的唯一標識,一般都是使用 報名加權限名?
  • android:permissionGroup: 權限所屬權限組的名稱?
  • android:protectionLevel: 權限的等級。?normal 是最低的等級,聲明次權限的app,系統會默認授予次權限,不會提示用戶;dangerous? 權限對應的操作有安全風險,系統在安裝聲明此類權限的app時會提示用戶?;signature? 權限表明的操作只針對使用同一個證書簽名的app開放?;signatureOrSystem? 與signature類似,只是增加了rom中自帶的app的聲明

android:name 屬性是必須的,其他的可選,未寫的系統會指定默認值

Code

首先創建了兩個app,app A ,app B ;?app A中注冊了一個BroadcastReceiver ,app B 發送消息?

app A的menifest文件:?

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.testbutton" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15" /> <!-- 聲明權限 --> <permission android:name="com.example.testbutton.RECEIVE" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" launcheMode="singleTask" android:configChanges="locale|orientation|keyboardHidden" android:screenOrientation="portrait" android:theme="@style/android:style/Theme.NoTitleBar.Fullscreen" > <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.example.testbutton.TestButtonReceiver" android:permission="com.example.testbutton.RECEIVE" > <intent-filter> <action android:name="com.test.action" /> </intent-filter> </receiver> </application> </manifest>

app B 的menifest 文件內容:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.testsender" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15" /> <!-- 聲明使用指定的權限 --> <uses-permission android:name="com.example.testbutton.RECEIVE" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".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>

這樣app B 給app A 發送消息,A就可以收到了,若未在app B的menifest文件中聲明使用相應的權限,app B發送的消息,A是收不到的。

同樣應用于Activity等組件。?

另外,也可在app B 的menifest文件中聲明權限時,添加android:protectionLevel="signature",指定app B只能接收到使用同一證書簽名的app 發送的消息。?

我是天王蓋地虎的分割線

參考:http://berdy.iteye.com/blog/1782854

轉載于:https://www.cnblogs.com/yydcdut/p/5042481.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Android -- 自定义权限的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。