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

歡迎訪問 生活随笔!

生活随笔

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

Android

Android内容提供器——运行权限

發布時間:2023/12/10 Android 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android内容提供器——运行权限 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

程序運行是的權限分為兩種,一種是普通權限,一種是危險權限。普通權限的話可以直接使用,只有危險權限需要詢問用戶的同意。

危險權限分組以及組內權限如下:

注:危險權限同一組內有一項權限被授權,則一組權限都被授權。

1 group:android.permission-group.CONTACTS 2 permission:android.permission.WRITE_CONTACTS 3 permission:android.permission.GET_ACCOUNTS 4 permission:android.permission.READ_CONTACTS 5 6 group:android.permission-group.PHONE 7 permission:android.permission.READ_CALL_LOG 8 permission:android.permission.READ_PHONE_STATE 9 permission:android.permission.CALL_PHONE 10 permission:android.permission.WRITE_CALL_LOG 11 permission:android.permission.USE_SIP 12 permission:android.permission.PROCESS_OUTGOING_CALLS 13 permission:com.android.voicemail.permission.ADD_VOICEMAIL 14 15 group:android.permission-group.CALENDAR 16 permission:android.permission.READ_CALENDAR 17 permission:android.permission.WRITE_CALENDAR 18 19 group:android.permission-group.CAMERA 20 permission:android.permission.CAMERA 21 22 group:android.permission-group.SENSORS 23 permission:android.permission.BODY_SENSORS 24 25 group:android.permission-group.LOCATION 26 permission:android.permission.ACCESS_FINE_LOCATION 27 permission:android.permission.ACCESS_COARSE_LOCATION 28 29 group:android.permission-group.STORAGE 30 permission:android.permission.READ_EXTERNAL_STORAGE 31 permission:android.permission.WRITE_EXTERNAL_STORAGE 32 33 group:android.permission-group.MICROPHONE 34 permission:android.permission.RECORD_AUDIO 35 36 group:android.permission-group.SMS 37 permission:android.permission.READ_SMS 38 permission:android.permission.RECEIVE_WAP_PUSH 39 permission:android.permission.RECEIVE_MMS 40 permission:android.permission.RECEIVE_SMS 41 permission:android.permission.SEND_SMS 42 permission:android.permission.READ_CELL_BROADCASTS

申請權限:

以獲取撥打電話call權限為例。

首先在 AndroidManifest.xml 文件中聲明所需的權限:

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

在布局文件中設置一個按鈕,然后在MainActivity中編寫相關申請權限的邏輯。

申請主要分三個部分:

1.設置按鈕點擊事件,通過checkSelfPermission方法來判斷是否有相關權限,如果沒有權限,則調用requestPermissions方法來詢問用戶是否授權,如果有權限,則直接調用call()來進行執行。

2.在第一步調用完requestPermissions方法后,無論用戶選擇授權與否,都會回調到onRequestPermissionsResult()方法中,授權結果封裝在grantResults參數中,所以判斷授權結果,如果授權同意,則調用call方法,不同意則提示未獲得授權。

3.call方法具體,使用隱身intent方法,動作為撥打電話,并設置相應電話號碼,執行intent動作。為了防止程序奔潰,這些放在try方法里執行。

代碼如下:

1 public class MainActivity extends AppCompatActivity { 2 3 @Override 4 protected void onCreate(Bundle savedInstanceState) { 5 super.onCreate(savedInstanceState); 6 setContentView(R.layout.activity_main); 7 8 /*設置按鈕點擊事件,通過checkSelfPermission方法來判斷是否有相關權限 9 * 如果沒有權限,則調用requestPermissions方法來詢問用戶是否授權 10 * 如果有權限,則直接調用call()來進行執行*/ 11 Button makeCall = (Button) findViewById(R.id.make_call); 12 makeCall.setOnClickListener(new View.OnClickListener() { 13 @Override 14 public void onClick(View view) { 15 /*該方法傳入兩個參數,第一個是context,第二個是要獲得的權限名。 16 將返回值與PackageManager.PERMISSION_GRANTED做比較*/ 17 if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE) 18 != PackageManager.PERMISSION_GRANTED) { 19 /*為獲得授權,調用requestPermissions方法向用戶申請授權, 20 傳入三個參數:context,獲得的權限名字符串,以及請求碼,唯一值即可。*/ 21 ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CALL_PHONE}, 1); 22 } else { 23 call(); 24 } 25 } 26 }); 27 } 28 29 /*call方法具體,使用隱身intent方法,動作為撥打電話,并設置相應電話號碼,執行intent動作。 30 * 為了防止程序奔潰,這些放在try方法里執行。*/ 31 private void call() { 32 try { 33 Intent intent = new Intent(Intent.ACTION_CALL); 34 intent.setData(Uri.parse("tel:10086")); 35 startActivity(intent); 36 } catch (SecurityException e) { 37 e.printStackTrace(); 38 } 39 } 40 41 @Override 42 public void onRequestPermissionsResult(int requestCode, String[] permissions, 43 int[] grantResults) { 44 switch (requestCode) { 45 case 1: 46 if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 47 call(); 48 } else { 49 Toast.makeText(this, "you denied the permission", Toast.LENGTH_LONG).show(); 50 } 51 break; 52 default: 53 } 54 } 55 }

?

轉載于:https://www.cnblogs.com/Mask-D/p/9520291.html

總結

以上是生活随笔為你收集整理的Android内容提供器——运行权限的全部內容,希望文章能夠幫你解決所遇到的問題。

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