Kotlin 協(xié)程 一行代碼動(dòng)態(tài)申請(qǐng)權(quán)限(CoroutinePermissions)

前言

自6.0之后 所有的敏感權(quán)限都需要?jiǎng)討B(tài)申請(qǐng)焕窝,市面上隨之出現(xiàn)比較多的權(quán)限框架,easypermissions(google出品)照藻、AndPermission袜啃、RxPermissions(結(jié)合RxJava)。隨著 kotlin的逐漸普及幸缕,使用協(xié)程的人也越來(lái)越多群发,因此就有了本文,結(jié)合協(xié)程一行代碼動(dòng)態(tài)申請(qǐng)權(quán)限发乔。
通過(guò)創(chuàng)建Fragment結(jié)合google提供的easypermissions庫(kù)封裝動(dòng)態(tài)申請(qǐng)權(quán)限 成功后繼續(xù)操作熟妓。

  • 實(shí)現(xiàn)dialog提示語(yǔ)闡述權(quán)限用途
  • 支持禁用后跳轉(zhuǎn)到應(yīng)用設(shè)置界面手動(dòng)開啟權(quán)限
  • 實(shí)現(xiàn)協(xié)程一行代碼 順序執(zhí)行 邏輯清晰明了

上代碼

private val permsSd = arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE)
        
CoroutineScope(Dispatchers.Main).launch {
        try {
            requestPermissionsForResult(*permsSd, rationale = "為了更好的提供服務(wù),需要獲取存儲(chǔ)空間權(quán)限")
            //todo 成功 接下來(lái)處理邏輯  比如 打開相冊(cè)
            startActivity(Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI))
        } catch (e: Exception) {
        }
}

沒(méi)錯(cuò)就是這么簡(jiǎn)單 配合viemodel封裝一層try catch 更絲滑栏尚!
沒(méi)有回調(diào)起愈,沒(méi)有鏈?zhǔn)秸{(diào)用,從上到下執(zhí)行 簡(jiǎn)單易用译仗!

如何使用

在項(xiàng)目主工程的build.gradle文件中加入:

allprojects {
    repositories {
        .......
        maven {
            url  "https://dl.bintray.com/liul1/maven"
        }
        ......
}

在需要使用moudel的build.gradle文件中加入:

implementation 'com.github.lilei:coroutine-permissions:1.0.0'

需要看源碼的朋友移步:https://github.com/liulilei/CoroutinePermissions
如果對(duì)您有幫助抬虽,請(qǐng)動(dòng)動(dòng)手指點(diǎn)個(gè)star,謝謝纵菌!

本文參考資料:

https://github.com/diao-jian/CoroutinePermissions
https://github.com/florent37/InlineActivityResult

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末阐污,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子咱圆,更是在濱河造成了極大的恐慌笛辟,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件序苏,死亡現(xiàn)場(chǎng)離奇詭異手幢,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)忱详,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門围来,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人匈睁,你說(shuō)我怎么就攤上這事管钳。” “怎么了软舌?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵才漆,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我佛点,道長(zhǎng)醇滥,這世上最難降的妖魔是什么黎比? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮鸳玩,結(jié)果婚禮上阅虫,老公的妹妹穿的比我還像新娘。我一直安慰自己不跟,他們只是感情好颓帝,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著窝革,像睡著了一般购城。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上虐译,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天瘪板,我揣著相機(jī)與錄音,去河邊找鬼漆诽。 笑死侮攀,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的厢拭。 我是一名探鬼主播兰英,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼供鸠!你這毒婦竟也來(lái)了畦贸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤回季,失蹤者是張志新(化名)和其女友劉穎家制,沒(méi)想到半個(gè)月后正林,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泡一,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年觅廓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鼻忠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡杈绸,死狀恐怖帖蔓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情瞳脓,我是刑警寧澤塑娇,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站劫侧,受9級(jí)特大地震影響埋酬,放射性物質(zhì)發(fā)生泄漏哨啃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一写妥、第九天 我趴在偏房一處隱蔽的房頂上張望拳球。 院中可真熱鬧,春花似錦珍特、人聲如沸祝峻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)莱找。三九已至,卻和暖如春砸琅,著一層夾襖步出監(jiān)牢的瞬間宋距,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工症脂, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谚赎,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓诱篷,卻偏偏與公主長(zhǎng)得像壶唤,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子棕所,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348