android分享到微信
A. Android 如何將圖片和文字同時分享到微信
這個實現起來也很簡單的,可以看看下面的步驟。
工具原料:手機,微信。
方法步驟:
1、打開微信,點擊發現。
B. Android集成微信分享功能采坑:分享不成功,一閃而過,無反應等情況
Android 微信分享遇到的問題:
1.APP_ID是否輸入正確
2.官網申請時輸入的簽名和打包的簽名是否一致(請用微信推薦的簽名工具對比)
註:微信平台填寫的簽名是
是apk的keystore的md5去掉冒號,大寫換位小寫字母形式
3.分享一閃而過
有可能的bug:簽名錯誤,appid正確,但是申請的時候吧包名和簽名寫反了
微信緩存問題,重新安裝微信多試幾次
4.請用微信官方提供的簽名獲取工具
5.自己直接run到手機運行的apk包注意簽名應該和申請時用的簽名一致(即把debug的簽名改為release的)
6.分享圖片的縮略圖太大,超過32k
7.換設備,重新嘗試
8.保證所有配置沒有問題的情況下,嘗試重啟手機即可……(我沒有開玩笑)
C. android 上通過微信分享怎麼實現
第三方sdk
D. android app怎樣實現微信分享
使用微信SDK分享WXAppExtendObject數據給好友,好友點擊跳轉MyApp的某個頁面(需要在分享時傳遞構造跳轉Intent的參數)。
1.該類型的分享(具體請參考微信分享SDK)可以帶幾個參數,參數中必須附帶一些構造跳轉Intent的數據。
2.好友點擊分享的內容,回調IWXAPIEventHandler介面的類的onReq方法,具體為
ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX:這種情況才會調用,此時可以取出分享時附帶在參數中的一些數據,構造一個跳轉Intent,調用startActivity(intent) 來打開MyApp。
由於是項目實測,這種實現方式的截圖也就不傳了。
問題1:該分享方式只能分享給好友,不能分享到朋友圈。
問題2:如果好友沒安裝MyApp,點擊微信中好友分享過來的消息後無反應,無法提醒「未安裝MyApp,請下載」,因為這些邏輯要實現的話本身就是在MyApp裡面寫的,原本沒裝的話根本無法檢測。
問題3:WXAppExtendObject類型的分享,數據有大小限制,
extInfo(String)限制2KB;
fileData(byte[])供第三方使用的文件二進制數據,最大10M;
filePath:(String)Local directory of the file provided for applications,本身長度最大10KB,文件大小同上,不超過10M。
E. 解決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方式分享文件到微信
F. 用 微信的 android SDK 怎麼分享信息 到微信
微信官方SDK的分享方法。
//圖片
Bitmap bt=BitmapFactory.decodeResource(getApplicationContext().getResources(), R.drawable.erweima); final Uri uri = Uri.parse(MediaStore.Images.Media.insertImage(getContentResolver(), bt, null,null));
//分享到朋友
private void shareToFriend(Uri uri) {
Intent intent = new Intent();
ComponentName comp = new ComponentName("com.tencent.mm",
"com.tencent.mm.ui.tools.ShareImgUI");
intent.setComponent(comp);
intent.setAction("android.intent.action.SEND");
intent.setType("image/*");
//intent.setFlags(0x3000001);
intent.putExtra(Intent.EXTRA_STREAM,uri);
startActivity(intent);
}
調用分享文本的android 系統方法。
//分享文字
public void shareText(View view) {
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_TEXT, "This is my Share text.");
shareIntent.setType("text/plain");
//設置分享列表的標題,並且每次都顯示分享列表
startActivity(Intent.createChooser(shareIntent, "分享到"));
}
//分享單張圖片
public void shareSingleImage(View view) {
String imagePath = Environment.getExternalStorageDirectory() + File.separator + "test.jpg";
//由文件得到uri
Uri imageUri = Uri.fromFile(new File(imagePath));
Log.d("share", "uri:" + imageUri); //輸出:file:///storage/emulated/0/test.jpg
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
shareIntent.setType("image/*");
startActivity(Intent.createChooser(shareIntent, "分享到"));
}
//分享多張圖片
public void shareMultipleImage(View view) {
ArrayList uriList = new ArrayList<>();
String path = Environment.getExternalStorageDirectory() + File.separator;
uriList.add(Uri.fromFile(new File(path+"australia_1.jpg")));
uriList.add(Uri.fromFile(new File(path+"australia_2.jpg")));
uriList.add(Uri.fromFile(new File(path+"australia_3.jpg")));
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND_MULTIPLE);
shareIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uriList);
shareIntent.setType("image/*");
startActivity(Intent.createChooser(shareIntent, "分享到"));
}
G. 用 微信的 android SDK 怎麼分享信息 到微信
用 微信的 android SDK分享信息到微信,方法如下:
1、第一步:登錄微信開放平台,必須注冊了開發者賬號,然後在開放平台添加用於分享信息到微信的Android應用,例如:網路知道APP
2、添加的應用必須審核通過,然後會獲取一個APP_ID和一個APP_SECRET,用於在Android應用中使用
3、在微信開發平台「資源下載頁面」下載對應的SDK庫文件,同時可以下載一個Demo案例
4、想要成功分享信息到微信,比如在Eclipse開發完Android應用後,使用自定義的簽名對APP進行簽名,然後將簽名字元串填寫到微信開放平台審核的應用中(這一步很重要),否則頻繁閃退,分享信息失敗!