? ? 我們項(xiàng)目在啟動(dòng)的時(shí)候會(huì)去申請SD卡權(quán)限“WRITE_EXTERNAL_STORAGE”,以前這么做的原因是中狂,曾經(jīng)在不記得什么地方看過一篇文章說6.0的系統(tǒng)會(huì)需要這個(gè)權(quán)限凫碌,但是之前一直沒測出來是為什么需要這個(gè)權(quán)限。今天吃型,在520這個(gè)特殊的日子证鸥,終于發(fā)現(xiàn)了這個(gè)千古疑點(diǎn)。勤晚。
? ? 今天QA找我說枉层,他先把obb文件放到目錄下,再安裝apk赐写,就會(huì)解壓失敗鸟蜡。但是先安裝apk再放obb文件,就沒問題挺邀。
? ? 我一開始猜測是不是在安裝apk的時(shí)候把我的obb刪了揉忘,最后驗(yàn)證發(fā)現(xiàn)不是。obb文件在端铛,就是無法解壓泣矛。于是我重啟了一下手機(jī),就解壓成功了禾蚕。您朽。。
? ? 這是一個(gè)必現(xiàn)問題换淆,真是太好了哗总。
? ? 于是開始加日志,就看到了底下的這一幕:
? ? 結(jié)論:
? ? ? ? 6.x的系統(tǒng)倍试,當(dāng)從谷歌商店下載應(yīng)用的時(shí)候讯屈,如果obb比apk先下載完成,就會(huì)出現(xiàn)權(quán)限不足的問題县习。我們的解決方案是在讀obb失敗的時(shí)候涮母,主動(dòng)去請求WRITE_EXTERNAL_STORAGE權(quán)限。
? ? ? ? (6.x系統(tǒng)應(yīng)該是權(quán)限管理有漏洞躁愿,在obb下載完成的時(shí)候哈蝇,去查找apk,給apk授權(quán)攘已。obb比apk先下載完成的情況,就會(huì)找不到apk怜跑,導(dǎo)致授權(quán)失敗样勃。我猜是這樣吠勘。)
? ? ? ? 為什么不在游戲啟動(dòng)的時(shí)候去申請呢?因?yàn)樯暾埞雀柰扑]位的時(shí)候峡眶,對方建議盡量不要在游戲啟動(dòng)的時(shí)候申請?zhí)鄼?quán)限剧防,歐美用戶對權(quán)限這塊會(huì)比較敏感。
? ?