權(quán)限獲取與動(dòng)態(tài)權(quán)限2018-11-22

????????今天是2018年11月22號(hào)今天似乎不是那么的忙岛啸。

? ? ? ? 雖然工資很低但是我還是要努力的去工作下去秦驯,畢竟在這個(gè)人吃人的社會(huì)中我們無法去隨心所欲的生活瞄桨,在這個(gè)現(xiàn)實(shí)的社會(huì)中我們還是努力去賺錢蠢莺,努力的去養(yǎng)活自己吧偎窘。

? ? ? ? 人生沒有那么多的知己所以坷牛,有時(shí)候還是要去找個(gè)地方傾瀉一下自己的負(fù)面情緒罕偎,不然在這個(gè)大時(shí)代的快節(jié)奏的趨勢下總有一天你會(huì)撐不下去的。

? ? ? ? 好吧言歸正傳吧今天我們說一下權(quán)限吧京闰,其實(shí)剛開始我還是有點(diǎn)不明白颜及,有興趣的童鞋我們可以一起去看看呀。

? ? ? ? 權(quán)限是在22還是23之后才會(huì)出現(xiàn)的蹂楣,所以一般寫的時(shí)候我們需要去判斷你的SDK是不是23以后的版本俏站,這時(shí)我們才需要去判斷你的權(quán)限是否是通過的。

? ? ? ?來說一下今天我糾結(jié)的地方那就是為什么我的權(quán)限獲取判斷了捐迫,還不彈出我需要的那個(gè)系統(tǒng)獲取權(quán)限的對(duì)話框乾翔,這到底是為什么,在國產(chǎn)機(jī)中我們國家的各大廠家都比較的優(yōu)秀,就是在安裝app的時(shí)候會(huì)將我們?cè)谇鍐挝募袑懙臋?quán)限全部都獲取以邊所以導(dǎo)致了我為什么看不到我想看到的那個(gè)系統(tǒng)獲取權(quán)限的對(duì)話框反浓,后來經(jīng)過群里的好心人糾正終于發(fā)現(xiàn)了這個(gè)問題萌丈,于是我就用虛擬機(jī)嘗試了一次中與看到了我想要看到 的那個(gè)對(duì)話框

? ? 下面我們來看一下獲取權(quán)限的代碼,好吧是動(dòng)態(tài)獲取雷则,先來說一下吧

? ? ? ? 剛開始我以為動(dòng)態(tài)獲取只用在代碼中寫就可以了不用去清單文件中去聲名現(xiàn)在知道了只有在清單文件中聲明了才能去動(dòng)態(tài)獲取權(quán)限不然的話直接動(dòng)態(tài)獲取權(quán)限的話是會(huì)失敗的.

? ? ? ? 好吧廢話不多說了代碼演示

? ? ? ? 首先我用的是別人的代碼,主要是本人不會(huì)寫

? ? ? ? 好了好了趕緊上代碼


/申請(qǐng)兩個(gè)權(quán)限辆雾,錄音和文件讀寫

//1、首先聲明一個(gè)數(shù)組permissions月劈,將需要的權(quán)限都放在里面 ?這是一個(gè)相機(jī)權(quán)限和存儲(chǔ)權(quán)限

String[]permissions =new String[]{Manifest.permission.RECORD_AUDIO,

? ? ? ? Manifest.permission.READ_EXTERNAL_STORAGE};

//2度迂、創(chuàng)建一個(gè)mPermissionList,逐個(gè)判斷哪些權(quán)限未授予猜揪,未授予的權(quán)限存儲(chǔ)到mPerrrmissionList中

ListmPermissionList =new ArrayList<>();

private final int mRequestCode =100;//權(quán)限請(qǐng)求碼


? ??????//這里我直接在頁面創(chuàng)建的時(shí)候請(qǐng)求權(quán)限惭墓,其實(shí)不太好,這里只是為了演示

//一般是在觸發(fā)某個(gè)事件的時(shí)候再請(qǐng)求動(dòng)態(tài)權(quán)限而姐,比如點(diǎn)擊按鈕跳轉(zhuǎn)到一個(gè)拍照頁面腊凶,如果權(quán)限通過就跳轉(zhuǎn),否者吐司說沒有權(quán)限拴念!

if (Build.VERSION.SDK_INT >=23) {//6.0才用動(dòng)態(tài)權(quán)限

? ? initPermission();

}

//權(quán)限判斷和申請(qǐng)

private void initPermission() {

mPermissionList.clear();//清空沒有通過的權(quán)限

//逐個(gè)判斷你要的權(quán)限是否已經(jīng)通過

? ? for (int i =0; i

if (ContextCompat.checkSelfPermission(this, permissions[i]) != PackageManager.PERMISSION_GRANTED) {

mPermissionList.add(permissions[i]);//添加還未授予的權(quán)限

? ? ? ? }

}

//申請(qǐng)權(quán)限

? ? if (mPermissionList.size() >0) {//有權(quán)限沒有通過钧萍,需要申請(qǐng)

? ? ? ? ActivityCompat.requestPermissions(this, permissions, mRequestCode);

? ? }else {

//說明權(quán)限都已經(jīng)通過,可以做你想做的事情去

? ? ? ? Log.d("zdlhehda", "權(quán)限通過了");

? ? }

}



//請(qǐng)求權(quán)限后回調(diào)的方法

//參數(shù): requestCode? 是我們自己定義的權(quán)限請(qǐng)求碼

//參數(shù): permissions? 是我們請(qǐng)求的權(quán)限名稱數(shù)組

//參數(shù): grantResults 是我們?cè)趶棾鲰撁婧笫欠裨试S權(quán)限的標(biāo)識(shí)數(shù)組政鼠,數(shù)組的長度對(duì)應(yīng)的是權(quán)限名稱數(shù)組的長度风瘦,數(shù)組的數(shù)據(jù)0表示允許權(quán)限,-1表示我們點(diǎn)擊了禁止權(quán)限

@Override

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @NonNull int[] grantResults) {

super.onRequestPermissionsResult(requestCode, permissions, grantResults);

? ? boolean hasPermissionDismiss =false;//有權(quán)限沒有通過

? ? if (mRequestCode == requestCode) {

for (int i =0; i < grantResults.length; i++) {

if (grantResults[i] == -1) {

hasPermissionDismiss =true;

? ? ? ? ? ? }

}

//如果有權(quán)限沒有被允許

? ? ? ? if (hasPermissionDismiss) {

showPermissionDialog();//跳轉(zhuǎn)到系統(tǒng)設(shè)置權(quán)限頁面公般,或者直接關(guān)閉頁面万搔,不讓他繼續(xù)訪問

? ? ? ? }else {

//全部權(quán)限通過,可以進(jìn)行下一步操作俐载。蟹略。。

? ? ? ? ? ? Log.d("zdlhehda", "權(quán)限通過了");

? ? ? ? }

}

}

/**

* 不再提示權(quán)限時(shí)的展示對(duì)話框

*/

AlertDialogmPermissionDialog;

StringmPackName ="com.huawei.liwenzhi.weixinasr";

private void showPermissionDialog() {

if (mPermissionDialog ==null) {

mPermissionDialog =new AlertDialog.Builder(this)

.setMessage("已禁用權(quán)限遏佣,請(qǐng)手動(dòng)授予")

.setPositiveButton("設(shè)置", new DialogInterface.OnClickListener() {

@Override

? ? ? ? ? ? ? ? ? ? public void onClick(DialogInterface dialog, int which) {

cancelPermissionDialog();

? ? ? ? ? ? ? ? ? ? ? ? Uri packageURI = Uri.parse("package:" +mPackName);

? ? ? ? ? ? ? ? ? ? ? ? Intent intent =new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, packageURI);

? ? ? ? ? ? ? ? ? ? ? ? startActivity(intent);

? ? ? ? ? ? ? ? ? ? }

})

.setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override

? ? ? ? ? ? ? ? ? ? public void onClick(DialogInterface dialog, int which) {

//關(guān)閉頁面或者做其他操作

? ? ? ? ? ? ? ? ? ? ? ? cancelPermissionDialog();

? ? ? ? ? ? ? ? ? ? }

})

.create();

? ? }

mPermissionDialog.show();

}

//關(guān)閉對(duì)話框

private void cancelPermissionDialog() {

mPermissionDialog.cancel();

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市揽浙,隨后出現(xiàn)的幾起案子状婶,更是在濱河造成了極大的恐慌,老刑警劉巖馅巷,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件膛虫,死亡現(xiàn)場離奇詭異,居然都是意外死亡钓猬,警方通過查閱死者的電腦和手機(jī)稍刀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人账月,你說我怎么就攤上這事综膀。” “怎么了局齿?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵剧劝,是天一觀的道長。 經(jīng)常有香客問我抓歼,道長讥此,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任谣妻,我火速辦了婚禮萄喳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蹋半。我一直安慰自己他巨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布湃窍。 她就那樣靜靜地躺著闻蛀,像睡著了一般。 火紅的嫁衣襯著肌膚如雪您市。 梳的紋絲不亂的頭發(fā)上觉痛,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音茵休,去河邊找鬼薪棒。 笑死,一個(gè)胖子當(dāng)著我的面吹牛榕莺,可吹牛的內(nèi)容都是我干的俐芯。 我是一名探鬼主播,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼钉鸯,長吁一口氣:“原來是場噩夢啊……” “哼吧史!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起唠雕,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤贸营,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后岩睁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钞脂,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年捕儒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了冰啃。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖阎毅,靈堂內(nèi)的尸體忽然破棺而出焚刚,到底是詐尸還是另有隱情,我是刑警寧澤净薛,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布汪榔,位于F島的核電站,受9級(jí)特大地震影響肃拜,放射性物質(zhì)發(fā)生泄漏痴腌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一燃领、第九天 我趴在偏房一處隱蔽的房頂上張望士聪。 院中可真熱鬧,春花似錦猛蔽、人聲如沸剥悟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽区岗。三九已至,卻和暖如春毁枯,著一層夾襖步出監(jiān)牢的瞬間慈缔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來泰國打工种玛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留藐鹤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓赂韵,卻偏偏與公主長得像娱节,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子祭示,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容