隨着微信愈來愈火,愈來愈多的應用要求有分享到微信的功能。雖然有不少平臺都幫集成有分享功能,好比友盟。可是我的以爲友盟集成的東西太多了,本身封裝得太過度了,不少資源文件也要帶進去,因此感受不是怎麼好,因此本身也研究了一下微信的調用其SDK分享。下面說說步驟。android
第一:下載官方的sdk demo。微信
下載地址:http://open.weixin.qq.com/download/?lang=zh_CNeclipse
第二:解壓,並將工程導入到eclipse測試
解壓出來的時候,發現根目錄下有一個debug.keystore文件,這個文件很關鍵的哦。ui
而後咱們運行看看,你會發現分享根本就不成功,是微信緣由嗎,固然不是。spa
第三:在上面說到項目的根目錄下有一個debug.keystore文件,由於咱們編譯、簽名apk的時候,用的是咱們自帶的那個 debug.keystore,每臺電腦都是不同的簽名文件,並且微信那個APP_ID已經簽名文件debug.keystore綁定了的,因此爲何 咱們直接運行時候是不成功的。debug
解決方法就是將微信的那個debug.keystore拷貝到咱們電腦默認的那個debug.keystore位置,將其覆蓋(建議先備份)。code
在window系統,這個簽名文件在c:\用戶\你的用戶名\.android目錄下(注意.android文件夾默認是隱藏的)。component
再次運行,分享就成功了。blog
若是是咱們的應用,將APP_ID替換成咱們在官網上面申請的APP_ID就好了。
其實咱們分享信息到微信,還有一種更簡單的方法,不用其提供的SDK API,直接調用微信相關的Activity,這樣更加省事,例如:
/** * 分享信息到朋友 * * @param file,假如圖片的路徑爲path,那麼file = new File(path); */ private void shareToFriend(File file) { Intent intent = new Intent(); ComponentName componentName = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareImgUI"); intent.setComponent(componentName); intent.setAction(Intent.ACTION_SEND); intent.setType("image/*"); intent.putExtra(Intent.EXTRA_TEXT, "測試微信"); intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file)); startActivity(intent); }
/** * 分享信息到朋友圈 * * @param file,假如圖片的路徑爲path,那麼file = new File(path); */ private void shareToTimeLine(File file) { Intent intent = new Intent(); ComponentName componentName = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareToTimeLineUI"); intent.setComponent(componentName); intent.setAction(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file)); // intent.setAction(android.content.Intent.ACTION_SEND_MULTIPLE); // ArrayList<Uri> uris = new ArrayList<Uri>(); // for (int i = 0; i < images.size(); i++) { // Uri data = Uri.fromFile(new File(thumbPaths.get(i))); // uris.add(data); // } // intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); intent.setType("image/*"); startActivity(intent); }