我們都知道,通過 微信官方 分享sdk 支援圖片分享,而且有多種方式。官方連結 可直接查看,不再贅述。
本文要解決的問題是,分享本地帶二維碼的圖片給微信好友和朋友圈。朋友圈圖片能夠實現長按識別,給微信好友對話方塊的圖片 在 iOS 可以正常識別,但是 Android 端卻不能識別 ,為什嗎?
以下引用網友的回答:
經過分析和功能對比,android wechat app 中有兩種圖片瀏覽方式,圖片預覽,和圖片本地發送後的開啟查看(這個有識別動作)頁面。預覽圖片功能中,不包含長按手勢的識別功能,仔細觀察可看到,iOS 裝置發送二維碼圖片到聊天記錄中,android 開啟的是預覽功能,長按是沒有二維碼識別功能的,但當 android 將此圖片儲存後,再次發出時,是可以識別的,圖並無問題,而是 wechat android 版本的功能實現與iOS不對等導致。
通過 系統的 ACTION_SEND 組件可以解決上述問題。
< class="language-java hljs "> /** * 分享圖片到 微信 * @param path 本地路徑的圖片 */ private void shareWeChat(String path){ Uri uriToImage = Uri.fromFile(new File(path)); Intent shareIntent = new Intent(); //發送圖片到朋友圈 //ComponentName comp = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareToTimeLineUI"); //發送圖片給好友。 ComponentName comp = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareImgUI"); shareIntent.setComponent(comp); shareIntent.setAction(Intent.ACTION_SEND); shareIntent.putExtra(Intent.EXTRA_STREAM, uriToImage); shareIntent.setType("image/jpeg"); startActivity(Intent.createChooser(shareIntent, "分享圖片")); }