當前位置:首頁 » 安卓系統 » android開發許可權

android開發許可權

發布時間: 2023-01-20 11:48:52

1. 開發Android網路手機游戲需要打開哪些許可權

開發Android網路手機游戲需要打開的許可權主要包括:網路訪問的許可權、讀取wifi狀態的許可權、對文件讀寫的許可權、防止手機黑屏的許可權等,如下:

java"><uses-permissionandroid:name="android.permission.INTERNET"/>
<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permissionandroid:name="android.permission.RESTART_PACKAGES"/>
<uses-permissionandroid:name="android.permission.KILL_BACKGROUND_PROCESSES"/>

大部分的應用都需要聯網,和讀寫文件,一些特殊的應用,需要有拍照、錄音、地理位置、讀取聯系人等許可權,用戶需要謹慎勾選,防止泄密。

2. Android許可權機制

我們知道 Android 應用程序是沙箱隔離的,每個應用都有一個只有自己具有讀寫許可權的專用數據目錄。但是如果應用要訪問別人的組件或者一些設備上全局可訪問的資源,這時候許可權機制就能系統化地規范並強制各類應用程序的行為准則。

Android 安全性概覽

在 Android 中,一個許可權,本質上是一個字元串,一個可以表示執行特定操作的能力的字元串。比如說:訪問 SD 卡的能力,訪問通訊錄的能力,啟動或訪問一個第三方應用中的組件的能力。 許可權被授予了之後,首先會在內存和本地中有記錄,這在調用系統binder服務和其他應用組件時做鑒權依據,比如調用系統binder服務時會通過Binder.getCallingUid()拿到調用者的Uid,而Uid一般都是與應用包名一一對應的,再拿這個Uid到PMS里去查這個應用對應的許可權。 其次會按被授予的許可權將應用分到某個組。 可以參考 https://www.jianshu.com/p/a17c8bed79d9

自定義許可權的應用場景在於限制其它應用對本應用四大組件的訪問。具體用法可以參考 https://www.cnblogs.com/aimqqroad-13/p/8927179.html

pm list permissions -f 命令可以詳細查看 Android 所有預定義的許可權。

更詳細的許可權信息參考 https://developer.android.com/reference/android/Manifest.permission?hl=zh-cn#WRITE_EXTERNAL_STORAGE

可以看到一個許可權的信息包括:定義的包名、標簽、描述、 許可權組 保護級別

許可權根據設備的功能或特性分為多個組。如果應用已在相同許可權組中被授予另一危險許可權,系統將立即授予該許可權,如READ_CONTACTS和WRITE_CONTACTS。

SYSTEM_ALERT_WINDOW 和 WRITE_SETTINGS 由於其特殊性,其申請方式與其它許可權都不同。

其授予流程如下:

(關於 AppOpsManager 是什麼可以參考: https://segmentfault.com/a/1190000009214983 )

這里簡要分析下ActivityCompat#requestPermissions的流程:

更詳細的許可權授予流程源碼分析可以參考: https://segmentfault.com/a/1190000009214983

普通許可權: 清單文件中聲明即可。

危險許可權: 方式一: pm grant application_package android.permission.CHANGE_CONFIGURATION 方式二:appops set application_package permission_num 0/1

appops可以授予的許可權參考 android.app.AppOpsManager 中的聲明

系統簽名許可權: 方式一:將app遷移到system/priv-app目錄中。 方式二:看不懂,參考 https://blog.csdn.net/abcd_3344_abcd/article/details/50698759

android 4.4 訪問sd卡需要申請許可權。 您的應用在 Android 4.4 上運行時無法讀取外部存儲空間上的共享文件,除非您的應用具有 READ_EXTERNAL_STORAGE 許可權。也就是說,沒有此許可權,您無法再訪問 () 返回的目錄中的文件。但是,如果您僅需要訪問 getExternalFilesDir() 提供的您的應用特有目錄,那麼,您不需要 READ_EXTERNAL_STORAGE `許可權。

android 6.0 運行時許可權。 此版本引入了一種新的許可權模式,如今,用戶可直接在運行時管理應用許可權。這種模式讓用戶能夠更好地了解和控制許可權,同時為應用開發者精簡了安裝和自動更新過程。用戶可為所安裝的各個應用分別授予或撤銷許可權。 對於以 Android 6.0(API 級別 23)或更高版本為目標平台的應用,請務必在運行時檢查和請求許可權。要確定您的應用是否已被授予許可權,請調用新增的 checkSelfPermission() 方法。要請求許可權,請調用新增的 requestPermissions() 方法。即使您的應用並不以 Android 6.0(API 級別 23)為目標平台,您也應該在新許可權模式下測試您的應用。 如需了解有關在您的應用中支持新許可權模式的詳情,請參閱 使用系統許可權 。如需了解有關如何評估新模式對應用的影響的提示,請參閱 許可權最佳做法 。

android 7.+ 應用間共享文件要使用FileProvider。 對於面向 Android 7.0 的應用,Android 框架執行的 StrictMode API 政策禁止在您的應用外部公開 file://URI。如果一項包含文件 URI 的 intent 離開您的應用,則應用出現故障,並出現 FileUriExposedException 異常。 要在應用間共享文件,您應發送一項 content:// URI,並授予 URI 臨時訪問許可權。進行此授權的最簡單方式是使用 FileProvider `類。如需了解有關許可權和共享文件的詳細信息,請參閱 共享文件 。

android 8.+
同一許可權組的許可權在被授予了之後也需要顯式的再申請一次。
在 Android 8.0 之前,如果應用在運行時請求許可權並且被授予該許可權,系統會錯誤地將屬於同一許可權組並且在清單中注冊的其他許可權也一起授予應用。 對於針對 Android 8.0 的應用,此行為已被糾正。系統只會授予應用明確請求的許可權。然而,一旦用戶為應用授予某個許可權,則所有後續對該許可權組中許可權的請求都將被自動批准。 例如,假設某個應用在其清單中列出 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 。應用請求 READ_EXTERNAL_STORAGE ,並且用戶授予了該許可權。如果該應用針對的是 API 級別 24 或更低級別,系統還會同時授予 WRITE_EXTERNAL_STORAGE ,因為該許可權也屬於同一 STORAGE 許可權組並且也在清單中注冊過。如果該應用針對的是 Android 8.0,則系統此時僅會授予 READ_EXTERNAL_STORAGE ;不過,如果該應用後來又請求 WRITE_EXTERNAL_STORAGE ,則系統會立即授予該許可權,而不會提示用戶。

android 9
隱私許可權變更。
為了增強用戶隱私,Android 9 引入了若干行為變更,如限制後台應用訪問設備感測器、限制通過 Wi-Fi 掃描檢索到的信息,以及與通話、手機狀態和 Wi-Fi 掃描相關的新許可權規則和許可權組。

android 10
隱私權變更。
外部存儲訪問許可權范圍限定為應用文件和媒體,在後台運行時訪問設備位置信息需要許可權,針對從後台啟動 Activity 的限制等。

android 11
隱私許可權變更。
更詳細的版本變更請參考 https://developer.android.com/preview/privacy?hl=zh-cn

3. 安卓開發我想獲取System許可權

System許可權需要先獲取ROOT許可權,由於 /system 和 /data都是root用戶的目錄,普通用戶沒有讀寫許可權,需要獲取root許可權才可以,修改。

目前應用市場有非常多的一鍵ROOT工具,這里就不舉例了,功能基本都是一樣的,Root許可權的獲取方式:

1.用手機連接電腦,下載一鍵root工具。
2.下載成功後,打開一鍵ROOT軟體。會出現root准備,點擊下一步,正式開始root。
3.檢查root條件,要是需要文件備份的話,一定要備份後。點擊開始ROOT。
4.root正式開始,需要幾鍾左右時間,期間可能會重啟數次,root就會完成。
5.root完成後,就可以隨意刪除手機中的垃圾應用了包括系統應用。


當你獲取root許可權後通過adb訪問 /system/app目錄:

  1. adb shell 進入shell模式

  2. su 切換到root用戶

  3. chmod 777/system/app修改/system/app目錄的許可權為 777即可

  4. exit 退出root用戶

  5. cd/system/app即可進入/system/app目錄了


獲取root許可權後,將apk復制到/system/app目錄下即可。

4. Android開發中怎麼主動請求許可權

自定義屬於自己的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 屬性是必須的,其他的可選,未寫的系統會指定默認值

1、許可權的聲明(APP1)

<permission android:name="com.xxx.permission" />

<receiver

android:name="com.example.demo1"

android:permission="com.xxx.permission" >

<intent-filter>

<action android:name="com.test.action" />

</intent-filter>

</receiver>

<activity
android:name=".MainActivity"
android:label="@string/title_activity_main"
android:permission="com.xxx.permission" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

2、許可權的使用(APP2)
<uses-permission android:name="com.xxx.permission" />

5. android開發 彈出許可權提示框 檢查是否具有某個許可權

一般你添加了許可權,在第一次安裝運行時就會提醒,你也可以強制,比如照相機許可權檢查

finalprivateintREQUEST_CODE_ASK_PERMISSIONS=123;//許可權請求碼
//在執行掃描二維碼之前檢查是否具有打開照相機的許可權
try{
inthasWriteContactsPermission=context.checkSelfPermission(Manifest.permission.CAMERA);//許可權檢查
if(hasWriteContactsPermission!=PackageManager.PERMISSION_GRANTED){
requestPermissions(newString[]{Manifest.permission.CAMERA},
REQUEST_CODE_ASK_PERMISSIONS);
return;//沒有許可權,結束
}else{
//做自己的操作
}
}catch(Exceptione){
e.printStackTrace();
ToastUtil.defaultToast(getContext().getApplicationContext(),"許可權異常");
}
//回調函數,無論用戶是否允許都會調用執行此方法@Override
(intrequestCode,@NonNullString[]permissions,@NonNullint[]grantResults){
switch(requestCode){
caseREQUEST_CODE_ASK_PERMISSIONS:
if(grantResults[0]==PackageManager.PERMISSION_GRANTED){
//PermissionGranted用戶允許許可權繼續執行(我這里執行的是二維碼掃描,檢查的是照相機許可權)
Intentintent=newIntent(getActivity(),
CaptureActivity.class);
startActivityForResult(intent,REQUEST_CODE_SCAN);
}else{
//PermissionDenied拒絕
ToastUtil.defaultToast(context.getApplicationContext(),"獲取許可權失敗,無法掃描");
}
break;
default:
super.onRequestPermissionsResult(requestCode,permissions,grantResults);
}
}

6. android 開發通知管理許可權怎麼獲取

如果想修改這個許可權大概有三種方式:

1.通過代碼反射系統類實現

系統管理通知欄許可權的類是:GC: AppOpsService,所有設置界面、notificationManagerService都是通過它來實現對通知欄許可權的管理。但是setNode 方法會檢測 UPDATE_APP_OPS_STATS 許可權,這個許可權是系統許可權,一般應用無法取得(android 許可權列表:Android App Permissions)

2. 在 Root 手機上直接修改配置文件

在 AppOpsService 的代碼中可以看到它其實就是操作一個文件,把所有設置保存在裡面 (Android development: disable "show notification" programmatically with root permission?),由於這個文件只有取得 root 許可權的 app 才可以拿到,所以美團不具備這個可能。

3. 通過 accessibility 模擬用戶點擊

7. android studio 動態許可權寫在哪裡

android studio 動態許可權寫在許可權分為普通許可權和許可許可權。

許可許可權分類歸組,一個許可權授權之後,該組下的許可權均可使用。這個問題問的有點不太清楚。如果你問是敲代碼的時候配置,那是在AndroidMainfest.xml里邊寫。

如果問的是手機里邊應用配置了許可權的在哪看,這個的話root過後,system/xx/packages.xml這里邊是可以看見所有安裝應用的信息的。中間目錄忘記了,詳情可以網路packages.xml了解。

主要功能:

2013年5月16日,在I/O大會上,谷歌推出新的Android開發環境——Android Studio,並對開發者控制台進行了改進,增加了五個新的功能。

Android Studio是谷歌推出了新的Android開發環境,開發者可以在編寫程序的同時看到自己的應用在不同尺寸屏幕中的樣子。

優化小貼士:在主體中打開你的應用,點擊小貼士,會得到這樣的建議:為你的應用開發平板電腦版本。

應用翻譯服務:允許開發者直接在開發主體中獲得專業的翻譯。上傳你的需求,選擇翻譯,其會顯示翻譯方和價格,並在一周內發回譯本。

熱點內容
小鳥雲如何去看客戶伺服器密碼 發布:2025-05-20 07:58:51 瀏覽:897
怎麼更改app的密碼 發布:2025-05-20 07:54:32 瀏覽:784
汽車配置物品怎麼處理 發布:2025-05-20 07:47:23 瀏覽:225
怎麼修改華為wifi密碼 發布:2025-05-20 07:45:12 瀏覽:41
php函數遞歸 發布:2025-05-20 07:39:36 瀏覽:781
登陸認證失敗請檢查伺服器地址 發布:2025-05-20 07:06:55 瀏覽:831
無限分類實現php 發布:2025-05-20 06:57:40 瀏覽:681
數據結構c語言版嚴蔚敏李冬梅 發布:2025-05-20 06:55:05 瀏覽:449
iphone快捷訪問 發布:2025-05-20 06:55:05 瀏覽:929
如何加密硬碟分區 發布:2025-05-20 06:52:29 瀏覽:363