Android訪問其他應(yīng)用的外部data目錄(支持Android13)

最近在寫一個(gè)安卓爐石記牌器,需要訪問爐石app外部存儲(chǔ)目錄來寫入配置文件和讀取log日志,也是就是需要讀取某個(gè)制定app的外部存儲(chǔ)目錄。下面是具體步驟:

1,不需要再清單文件里面申請(qǐng)權(quán)限

2谆刨,創(chuàng)建請(qǐng)求訪問Data目錄權(quán)限合約

class RequestAccessAppDataDir : ActivityResultContract<String, Uri?>() {
    override fun createIntent(context: Context, input: String): Intent {


        val dirUri = createAppDataDirUri(input)

        val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
        intent.flags = (Intent.FLAG_GRANT_READ_URI_PERMISSION
                or Intent.FLAG_GRANT_WRITE_URI_PERMISSION
                or Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION
                or Intent.FLAG_GRANT_PREFIX_URI_PERMISSION)
        val documentFile = DocumentFile.fromTreeUri(context.applicationContext, dirUri)!!
        intent.putExtra(DocumentsContract.EXTRA_INITIAL_URI, documentFile.uri)

        return intent
    }

    override fun parseResult(resultCode: Int, intent: Intent?): Uri? {
        return intent?.data
    }

}

3,創(chuàng)建啟動(dòng)器

 ///請(qǐng)求訪問目標(biāo)app的data目錄
        val requestAccessDataDirLauncher = registerForActivityResult(RequestAccessAppDataDir()) {
            if (it != null) {
                contentResolver.takePersistableUriPermission(
                    it,
                    Intent.FLAG_GRANT_WRITE_URI_PERMISSION or Intent.FLAG_GRANT_READ_URI_PERMISSION
                )
            }
        }

啟動(dòng)回調(diào)里面的代碼意思是:如果成功归斤,就請(qǐng)求持久訪問該目錄的權(quán)限痊夭,否則下次就不能訪問了

4,啟動(dòng)啟動(dòng)器

            requestAccessDataDirLauncher.launch(targetPackageName ?: "")

targetPackageName的意思是目標(biāo)app的包名

5脏里,同意授權(quán)

授權(quán)頁面

這個(gè)頁面在不同系統(tǒng)版本會(huì)有差異

6她我,結(jié)束

當(dāng)用戶同意授權(quán)返回后,就能對(duì)目標(biāo)app的data目錄進(jìn)行操作了迫横。

代碼地址

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末番舆,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子矾踱,更是在濱河造成了極大的恐慌恨狈,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件呛讲,死亡現(xiàn)場(chǎng)離奇詭異禾怠,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)圣蝎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門刃宵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人徘公,你說我怎么就攤上這事牲证。” “怎么了关面?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵坦袍,是天一觀的道長。 經(jīng)常有香客問我等太,道長捂齐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任缩抡,我火速辦了婚禮奠宜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己压真,他們只是感情好娩嚼,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著滴肿,像睡著了一般岳悟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上泼差,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天贵少,我揣著相機(jī)與錄音,去河邊找鬼堆缘。 笑死滔灶,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的套啤。 我是一名探鬼主播宽气,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼潜沦!你這毒婦竟也來了萄涯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤唆鸡,失蹤者是張志新(化名)和其女友劉穎涝影,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體争占,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡燃逻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了臂痕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伯襟。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖握童,靈堂內(nèi)的尸體忽然破棺而出姆怪,到底是詐尸還是另有隱情,我是刑警寧澤澡绩,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布稽揭,位于F島的核電站,受9級(jí)特大地震影響肥卡,放射性物質(zhì)發(fā)生泄漏溪掀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一步鉴、第九天 我趴在偏房一處隱蔽的房頂上張望揪胃。 院中可真熱鬧璃哟,春花似錦、人聲如沸喊递。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽册舞。三九已至,卻和暖如春障般,著一層夾襖步出監(jiān)牢的瞬間调鲸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國打工挽荡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留藐石,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓定拟,卻偏偏與公主長得像于微,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子青自,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

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