動(dòng)態(tài)權(quán)限對(duì)照的參考如下;開(kāi)啟組中其中一個(gè)權(quán)限的授權(quán)則組內(nèi)其他授權(quán)也會(huì)被打開(kāi);
//需要在6.0后做動(dòng)態(tài)權(quán)限的權(quán)限組,其中開(kāi)啟某一權(quán)限組中一個(gè)則默認(rèn)開(kāi)啟組中其他權(quán)限;;; <!-- CALENDAR--> <uses-permission android:name="android.permission.READ_CALENDAR"/> <uses-permission android:name="android.permission.WRITE_CALENDAR"/> <!-- CAMERA--> <uses-permission android:name="android.permission.CAMERA"/> <!-- CONTACTS--> <uses-permission android:name="android.permission.READ_CONTACTS"/> <uses-permission android:name="android.permission.WRITE_CONTACTS"/> <uses-permission android:name="android.permission.GET_ACCOUNTS"/> <!-- LOCATION--> <uses-permission android:name="android.permission.access_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <!-- PHONE--> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.CALL_PHONE"/> <uses-permission android:name="android.permission.READ_CALL_LOG"/> <uses-permission android:name="android.permission.WRITE_CALL_LOG"/> <uses-permission android:name="android.permission.USE_S1: 如果在程序的所需權(quán)限中有包含如下的權(quán)限,則需要使用動(dòng)態(tài)權(quán)限來(lái)處理,以免會(huì)出現(xiàn)異常的情況;下面的例子:
//相等則已經(jīng)授權(quán),不相等則沒(méi)有授權(quán),需要請(qǐng)授權(quán); if(ContextCompat.checkSelfPermission(this,Manifest.permission.READ_CONTACTS ) != PackageManager.PERMISSION_GRANTED) { //請(qǐng)求授權(quán) ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_CONTACTS},1); }else{ //接著做自己的事情 getContacts(); }2: 授權(quán)申請(qǐng)的時(shí)候會(huì)產(chǎn)生一個(gè)回調(diào)函數(shù),如下:
@Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); switch (requestCode){ case 1: if(grantResults.length>0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { //接著做自己的事情 getContacts(); }else { Toast.makeText(ConProActivity.this, "權(quán)限被拒!", Toast.LENGTH_SHORT).show(); } break; } }下面是利用ContentResolver來(lái)獲取系統(tǒng)的共享數(shù)據(jù)資源,電話號(hào),短息,圖片等等;
private void getContacts() { ContentResolver contentResolver = getContentResolver(); Cursor cursor = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); if(cursor!=null) { while (cursor.moveToNext()){ int nameIndex = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME); int numIndex = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER); String name = cursor.getString(nameIndex); String num = cursor.getString(numIndex); Toast.makeText(ConProActivity.this, name+", "+num, Toast.LENGTH_SHORT).show(); } cursor.close(); } }新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注