国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Flutter層對于Android 13存儲權(quán)限的適配問題

這篇具有很好參考價值的文章主要介紹了Flutter層對于Android 13存儲權(quán)限的適配問題。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

感覺很久沒有寫博客了,不對,的確是很久沒有寫博客了。原因我不怎么想說,玩物喪志了。后面漸漸要恢復之前的寫作節(jié)奏。今天來聊聊我最近遇到的一個問題:

Android 13版本對于storage權(quán)限的控制問題。

我們都知道,Android的每個版本更新都會伴隨著搞事,也就是所謂的谷歌精英又會勸告我們來按照他們認為高效,他們認為優(yōu)雅的方式來寫代碼,或者實現(xiàn)某些功能。所以在Android 13版本中,他們就對我們非常常用的storage權(quán)限伸出魔爪了。

我現(xiàn)在主要是開發(fā)面向海外的用戶的2C應用,所以,不像國內(nèi)一樣,對于版本的需求可以說是非常嚴苛,然后這次谷歌就下了最后通牒,說如果應用不把Target SDK Version設(shè)置成33,我們就不和你玩啦= =

然后就在Storage權(quán)限這里出問題了。Android 13版本需要將storage權(quán)限細分為

  • 對圖片的訪問權(quán)限

  • 對視頻的訪問權(quán)限

  • 對音頻的訪問權(quán)限

但是我們項目是混編的項目,目前主要的代碼都是用Flutter代碼來實現(xiàn)了,這樣就出現(xiàn)了一些比較尷尬的問題。

場景是這樣的,在Flutter層我們希望從本地選取圖片文件,在之前的版本(Android13)中,在選取文件前我們就需要判斷本地存儲權(quán)限的獲取狀況,然后根據(jù)權(quán)限的狀態(tài)來確定進一步操作,比如說彈出權(quán)限請求框或者直接讓用戶選擇本地圖片。

但是在Android13及之后的版本中,對于Storage權(quán)限的請求分為三種(其實我就感覺是谷歌官方閑著沒事干,來宣誓一下自己的主權(quán)):

public static final String READ_MEDIA_AUDIO = "android.permission.READ_MEDIA_AUDIO";
public static final String READ_MEDIA_IMAGES = "android.permission.READ_MEDIA_IMAGES";
public static final String READ_MEDIA_VIDEO = "android.permission.READ_MEDIA_VIDEO";

這里就會產(chǎn)生一個問題,就是我們?nèi)绻褂肁ndroid13之前版本的請求權(quán)限的方式時,即直接請求WRITE_EXTERNAL_STORAGE權(quán)限,那么系統(tǒng)就會直接返回用戶已經(jīng)拒絕了該權(quán)限,無論用戶是否曾經(jīng)拒絕過該權(quán)限。

那么問題來了,如果是你,你會怎么解決這個問題:

Flutter中star比較高的解決方案是:permission_handler。它的解決思路是在Flutter層也增加如上三種權(quán)限,在需要請求的時候進行區(qū)分,這樣的確可以,但是存在一個麻煩的地方。就是每次調(diào)用的時候都需要對平臺進行區(qū)分,這就很惡心了。

所以在這里我并不打算對Flutter層進行修改,而是在原生層進行改動,我不會貼具體的代碼,我只提供思路,因為代碼是死的,人是活的。

解決這個問題我們只需要在請求storage權(quán)限的時候進行當前手機Android版本的判斷,如果當前手機的版本大于Android 13,那么就同時請求上述三種權(quán)限,然后將請求結(jié)果包裝成正常的storage請求結(jié)果即可。文章來源地址http://www.zghlxwxcb.cn/news/detail-732688.html

到了這里,關(guān)于Flutter層對于Android 13存儲權(quán)限的適配問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【flutter】使用permission_handler配置android和 iOS的權(quán)限

    flutter在pub.flutter-io.cn插件庫中有很多的關(guān)于權(quán)限配置的插件,但是就我個人而言,比較推薦使用permission_handler這個插件。當我們打開permission_handler時候,往往新手小白會因為它的官網(wǎng)文檔而弄的一頭霧水,權(quán)限配置往往涉及到android和ios兩個方向的相關(guān)知識,有可能大多數(shù)人就

    2024年02月12日
    瀏覽(23)
  • 【Android常見問題(五)】- Flutter項目性能優(yōu)化

    【Android常見問題(五)】- Flutter項目性能優(yōu)化

    項目迭代開發(fā)一定程度后,性能優(yōu)化是重中之重,其中包括了包體積,UI 渲染、交互等多個方面。 通過 Flutter 應用的混淆為入口,我們主要探討了UI 渲染的優(yōu)化。 其中就會涉及到一個非常關(guān)健的概念 ——「FPS,F(xiàn)rame Per Second」即「每秒展示幀數(shù)」,它代表了應用的流暢度。

    2024年02月15日
    瀏覽(21)
  • android開發(fā)在android13中存儲權(quán)限發(fā)生變化,READ_EXTERNAL_STORAGE,WRITE_EXTERNAL_STORAGE無法使用

    原來的兩個存儲權(quán)限在android13中已經(jīng)無法使用 在android13中讀取圖片需要以下權(quán)限: 視頻權(quán)限: 音頻權(quán)限: 如果需要訪問pdf,word等其他類型文件,請使用以下權(quán)限:

    2024年02月01日
    瀏覽(32)
  • Flutter 第三方 flutter_screenutil(屏幕適配)

    Flutter 第三方 flutter_screenutil(屏幕適配)

    推薦一篇寫的非常不過的文章:Flutter應用框架搭建(二)屏幕適配 iPhone 12 mini 初始化 - 設(shè)置參考尺寸1 ScreenUtilInit 初始化 - 設(shè)置方式2 ScreenUtil.init 可以在每個頁面設(shè)置 使用這種方式只需在使用 flutter_screenutil 前進行初始化即可,一般放在根路由即第一個頁面加載的時候進行初始化

    2024年02月19日
    瀏覽(17)
  • 【flutter】flutter doctor -v 查看flutter配置環(huán)境問題:X cmdline-tools component is missing 以及 X Android license

    【flutter】flutter doctor -v 查看flutter配置環(huán)境問題:X cmdline-tools component is missing 以及 X Android license

    一、遇到報錯: 二、異常原因: 2.1 問題1:cmdline-tools component is missing 運行flutter doctor 出現(xiàn)了錯誤,這是因為沒安裝cmdline-tools工具。 2.2 問題2:Android license status unknown. flutter doctor 如果提示Android license status unknown.表明沒有安裝android 證書。 執(zhí)行命令: flutter doctor --android-lic

    2024年02月16日
    瀏覽(21)
  • Flutter:屏幕適配

    Flutter:屏幕適配

    flutter_screenutil 是一個用于在Flutter應用程序中進行屏幕適配的工具包。它旨在幫助開發(fā)者在不同屏幕尺寸和密度的設(shè)備上創(chuàng)建響應式的UI布局。 `flutter_screenutil``提供了一些用于處理尺寸和間距的方法,使得開發(fā)者可以根據(jù)設(shè)備的屏幕尺寸和密度來動態(tài)調(diào)整UI元素的大小和位置。

    2024年02月13日
    瀏覽(61)
  • flutter-移動端適配

    不同屏幕之間的尺寸適配 使用插件?flutter_screenutil flutter 屏幕適配方案,用于調(diào)整屏幕和字體大小的flutter插件,讓你的UI在不同尺寸的屏幕上都能顯示合理的布局! 安裝 # add flutter_screenutil flutter_screenutil: ^5.8.4

    2024年02月12日
    瀏覽(18)
  • Flutter & Android問題記錄 - 升級Android Studio 2022.2.1版本后運行項目報錯

    Flutter & Android問題記錄 - 升級Android Studio 2022.2.1版本后運行項目報錯

    最近一個Flutter項目有新需求,開發(fā)時一直是在iOS設(shè)備上運行,花了幾天做完后運行到Android設(shè)備測試,結(jié)果項目構(gòu)建失敗了。 Flutter: 3.7.11 Android Studio: 2022.2.1 Java: 17.0.6 Gradle: 7.4 Android Gradle Plugin (AGP): 4.1.3 項目構(gòu)建報錯日志: 報錯有點眼熟,根據(jù)以往開發(fā)經(jīng)驗,應該是Gradle版本

    2023年04月24日
    瀏覽(34)
  • 關(guān)于 Android 沒有文件存儲權(quán)限保存文件的問題

    我發(fā)現(xiàn)Android 有些APP 他們不需要申請文件存儲權(quán)限就可以進行文件的保存翻閱大量文章總結(jié)如下: 從 Android 10 開始,Android 引入了一種新的存儲權(quán)限模型,其中應用需要明確請求運行時權(quán)限以訪問外部存儲。在這種情況下,許多應用程序可能需要請求 WRITE_EXTERNAL_STORAGE 權(quán)限才

    2024年01月17日
    瀏覽(19)
  • Flutter屏幕適配的三種方案

    Flutter屏幕適配的三種方案

    做移動端開發(fā)的同學都知道,針對不同型號和尺寸的手機要進行頁面的適配,且 iOS 和 Android 適配方案各不相同,那我們用 Flutter 開發(fā)要怎么處理屏幕適配呢? Flutter使用的是類似于iOS中的點pt,也就是point。我們經(jīng)常說 iPhone8 的尺寸是375x667,但是它的分辨率其實是 750x1334 。因

    2024年02月06日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包