比較坑,昨天剛剛寫好了用微信SDK Jar包分享的Dome,但是公司突然又要分享圖片+文字,而且還不要網頁式的分享,找了半天,發現直接用微信SDK無法做到這一點,所以就只能用Intent直接傳值調用了。
好了,直接上代碼,就是一個類:
一、代碼文件 WeiXinShareUtil
<pre name="code" class="java">import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.widget.Toast;
import java.io.File;
/**
* Created by Administrator on 2015/6/24.
*/
public class WeiXinShareUtil {
public static void sharePhotoToWX(Context context, String text, String photoPath) {
if (!uninstallSoftware(context, "com.tencent.mm")) {
Toast.makeText(context, "微信沒有安裝!", Toast.LENGTH_SHORT).show();
return;
}
File file = new File(photoPath);
if (!file.exists()) {
String tip = "文件不存在";
Toast.makeText(context, tip + " path = " + photoPath, Toast.LENGTH_LONG).show();
return;
}
Intent intent = new Intent();
ComponentName componentName = new ComponentName("com.tencent.mm",
"com.tencent.mm.ui.tools.ShareToTimeLineUI");
intent.setComponent(componentName);
intent.setAction("android.intent.action.SEND");
intent.setType("image/*");
intent.putExtra("Kdescription", text);
intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
context.startActivity(intent);
}
private static boolean uninstallSoftware(Context context, String packageName) {
PackageManager packageManager = context.getPackageManager();
try {
PackageInfo packageInfo = packageManager.getPackageInfo(packageName, PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
if (packageInfo != null) {
return true;
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return false;
}
}
二、調用方式
WeiXinShareUtil.sharePhotoToWX(context, "test", photoPath);
第一個參數:上下文Context
第二次參數:你要分享的文字text
第三個參數:你要分享的圖片路徑photoPath
結束。如果有什麼問題歡迎來討論!