『壹』 解決android11上分享圖片失敗,微信提示需要使用FileProvider
先看下微信分享錯誤的提示:
看到這個錯誤大家第一個可能會想到FileProvider我在AndroidManifest早已配置過了,但是配置了是你可以使用FileProvider存儲了應用間共享文件,但是在並不代表你使用了FileProvider,然後了解問題我們就要先了解一個概念 分區存儲
Android 10之前,外部存儲區的內容主要以兩種形式:
在Android 10 中,Google首次引入了 分區存儲 ,將公共區域劃分成了不同的集合,並且在媒體文件和其他文檔之間建立了清楚的分割。經過劃分之後應用不可以隨意訪問外部存儲區中的文件,而只能訪問媒體文件。
Android 11 (API 級別 30) 進一步增強了平台功能,為外部存儲中的應用和用戶數據提供了更好的保護。
從 Android 11 開始,使用 分區存儲模式 的應用即使擁有 READ_EXTERNAL_STORAGE 許可權,也無法再訪問外部存儲中的任何其他應用的 專屬目錄 中的文件
受到這一限制的影響,如果你的應用通過第三方 SDK 分享文件 ( 例如分享照片給另一應用上的好友 ) 到其他應用,而這只是將自己專屬目錄中的文件路徑傳遞給目標應用,目標應用將無法讀取該文件。部分分享 SDK 可能沒有正確處理這種情形,沒有顯式報錯而只是靜默失敗 (對方用戶都沒有意識到這次分享),影響開發者和用戶的體驗。
FileProvider是Android7就提出的應用間共享文件適配方式,而目前大多數應用和SDK都具備這中方式
如果您的應用需要在 Android 11 上向其他應用分享文件,請檢查您使用的第三方分享 SDK 是否支持通過 FileProvider 進行分享 (現在大部分常用的第三方分享 SDK 均已支持)。通過 FileProvider,您的應用能夠允許第三方應用讀取所分享的文件,而不會受到分區存儲的限制
這里微信已經支持通過了FileProvider形式進行分享了,我們可以直接調用
在項目的AndroidManifest.xml添加相關配置,示例如下:
在res/xml目錄(如果沒有xml目錄,則新建一個)下,添加文件file_provider_paths.xml,內容如下:
external-files-path表示通過 Context.getExternalFilesDir(null) 介面獲取到的目錄下的文件才可被共享,其他未配置的路徑均不可被分享。 同樣的節點可以配置多個,以支持多個不同的子目錄 ,如下所示:
將路徑通過FileProvider的介面轉換成 content://URI 形式,示例如下:
參考文檔 OpenSDK支持FileProvider方式分享文件到微信
『貳』 怎麼發送微信動態圖片
您好!很高興能為您解答,
首先如果
你在網上看到的gif圖片是小於1m的,直接把gif圖片拖拽到電腦版微信的聊天界面中發送就可以了,如果gif圖片是大於1m的,就要用利用qq發送gif動態圖片,然後保存到手機里,再發送到微信。或者是通過壓縮gif圖片。
首先你要在電腦和手機上同時登陸qq,qq必須是同一個賬號的哦。先在電腦版qq界面中,打開「我的設備」,雙擊「我的iphone」,安卓手機的話就點擊我的android手機。
接著把電腦桌面上的gif動態圖片拖動到「我的iphone」界面里的發送框中,然後gif就會自動發送了。
那麼現在打開你的手機qq,在消息界面中會顯示「我的電腦」發送來的一條消息,點擊打開我的電腦界面。
在聊天界面中,就能看到從電腦版qq發來的一張gif動態圖片了...您好!很高興能為您解答,
首先如果
你在網上看到的gif圖片是小於1m的,直接把gif圖片拖拽到電腦版微信的聊天界面中發送就可以了,如果gif圖片是大於1m的,就要用利用qq發送gif動態圖片,然後保存到手機里,再發送到微信。或者是通過壓縮gif圖片。
首先你要在電腦和手機上同時登陸qq,qq必須是同一個賬號的哦。先在電腦版qq界面中,打開「我的設備」,雙擊「我的iphone」,安卓手機的話就點擊我的android手機。
接著把電腦桌面上的gif動態圖片拖動到「我的iphone」界面里的發送框中,然後gif就會自動發送了。
那麼現在打開你的手機qq,在消息界面中會顯示「我的電腦」發送來的一條消息,點擊打開我的電腦界面。
在聊天界面中,就能看到從電腦版qq發來的一張gif動態圖片了。那麼點擊下gif動態圖片。
打開該gif動態圖片預覽界面,圖片是動態的,先點擊右上角的「…」更多按鈕,在底部彈出的提示欄中點擊「保存到手機」也就是保存手機相冊中。
那麼現在就打開你手機里的微信,先點擊任意一位好友,進入與好友聊天的界面中,點擊界面右下角「+」圖標,點擊「相片」從手機相片中添加gif動態圖片。
那麼在相片中找到剛才從手機qq中保存的gif動態圖,並且選中它。
在gif預覽界面中,動態圖是正常的,在動態的不是靜態的。左下角還有gif圖片大小的信息,然後就可以點擊右下角的「發送」按鈕了。
然後在聊天界面中,gif動態圖片就發送成功了!可以轉發給更多的好友欣賞你發送的gif動態圖片。發送的gif動態圖片不是靜止的,也不是文件形式的。