android分享功能,安卓分享功能实现

android 上通过微信分享怎么实现

一、获取帮助文档并下载相关资料

我们提供的服务有:成都网站建设、成都做网站、微信公众号开发、网站优化、网站认证、东坡ssl等。为上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的东坡网站制作公司

首先打开微信开放平台: 如果没有注册,请先注册并上传开发者资料等待审核。

资源中心----移动应用开发----分享与收藏功能----Android开发手册

开发手册链接地址:

资源中心----移动应用开发----接入指南---Android接入指南(下面我们主要参考这个)

二、接入微信分享功能

1、申请AppID

如何现在没有AppID可以先下载官方的Demo使用Demo中的AppID即可。

SDK和Demo下载地址:;verify=1lang=zh_CNtarget=res/app_download_android

开发工具包(SDK)

使用微信分享、登录、收藏、支付等功能需要的库以及文件。点击下载 Android开发工具包

使用微信语音识别接口、语音合成接口。点击下载 语音SDK+Demo+开发文档

使用微信图像识别接口。点击下载 图像SDK+Demo+开发文档

使用微信卡券功能接口。点击下载 卡券SDK+开发文档

范例代码

包含了一个完整的范例工程。该范例的使用可以参阅Android平台上手指南:HelloWeixin@Android。点击下载

签名生成工具

用于获取安装到手机的第三方应用签名的apk包。点击下载 签名生成工具下载完成后我们可以参考一下Demo来集成。

2、下载微信开发工具包(在上面已经下载)

3、开始搭建开发环境然后将libammsdk.jar文件拷贝到工程lib目录下。

注意:如果使用的是Demo中的AppID则包名一定要先和Demo的包名一致,否则分享会出错。

4、新建一个Activity在里面放置一个按钮喎�"" target="_blank" class="keylink"vcD48cD48cHJlIGNsYXNzPQ=="brush:java;"package net.sourceforge.simcpux; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import com.example.weixinsharedemo.share.WeixinShareManager; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = (Button) findViewById(R.id.share_weibo); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { WeixinShareManager wsm = WeixinShareManager.getInstance(MainActivity.this); wsm.shareByWeixin(wsm.new ShareContentPic(R.drawable.ic_launcher), WeixinShareManager.WEIXIN_SHARE_TYPE_TALK); } }); } }

?

1

2

3

4

5

relativelayout xmlns:android="" xmlns:tools="" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context=".MainActivity"

button android:id="@+id/share_weibo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="分享到微信"/

/button/relativelayout

4、开始创建我们的分享逻辑类并实现需要的分享功能

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

256

257

258

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

283

284

285

286

287

288

289

290

291

292

293

294

295

296

297

298

299

300

301

package com.example.weixinsharedemo.share;

import android.content.Context;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.widget.Toast;

import com.example.weixinsharedemo.util.WeixiShareUtil;

import com.tencent.mm.sdk.modelmsg.SendMessageToWX;

import com.tencent.mm.sdk.modelmsg.WXImageObject;

import com.tencent.mm.sdk.modelmsg.WXMediaMessage;

import com.tencent.mm.sdk.modelmsg.WXTextObject;

import com.tencent.mm.sdk.modelmsg.WXWebpageObject;

import com.tencent.mm.sdk.openapi.IWXAPI;

import com.tencent.mm.sdk.openapi.WXAPIFactory;

/**

* 实现微信分享功能的核心类

* @author Administrator

*

*/

public class WeixinShareManager{

private static final int THUMB_SIZE = 150;

/**

* 文字

*/

public static final int WEIXIN_SHARE_WAY_TEXT = 1;

/**

* 图片

*/

public static final int WEIXIN_SHARE_WAY_PIC = 2;

/**

* 链接

*/

public static final int WEIXIN_SHARE_WAY_WEBPAGE = 3;

/**

* 会话

*/

public static final int WEIXIN_SHARE_TYPE_TALK = SendMessageToWX.Req.WXSceneSession;

/**

* 朋友圈

*/

public static final int WEIXIN_SHARE_TYPE_FRENDS = SendMessageToWX.Req.WXSceneTimeline;

private static WeixinShareManager instance;

private static String weixinAppId;

private IWXAPI wxApi;

private Context context;

private WeixinShareManager(Context context){

this.context = context;

//初始化数据

weixinAppId = WeixiShareUtil.getWeixinAppId(context);

//初始化微信分享代码

if(weixinAppId != null){

initWeixinShare(context);

}

}

/**

* 获取WeixinShareManager实例

* 非线程安全,请在UI线程中操作

* @return

*/

public static WeixinShareManager getInstance(Context context){

if(instance == null){

instance = new WeixinShareManager(context);

}

return instance;

}

private void initWeixinShare(Context context){

wxApi = WXAPIFactory.createWXAPI(context, weixinAppId, true);

wxApi.registerApp(weixinAppId);

}

/**

* 通过微信分享

* @param shareWay 分享的方式(文本、图片、链接)

* @param shareType 分享的类型(朋友圈,会话)

*/

public void shareByWeixin(ShareContent shareContent, int shareType){

switch (shareContent.getShareWay()) {

case WEIXIN_SHARE_WAY_TEXT:

shareText(shareType, shareContent);

break;

case WEIXIN_SHARE_WAY_PIC:

sharePicture(shareType, shareContent);

break;

case WEIXIN_SHARE_WAY_WEBPAGE:

shareWebPage(shareType, shareContent);

break;

}

}

private abstract class ShareContent{

protected abstract int getShareWay();

protected abstract String getContent();

protected abstract String getTitle();

protected abstract String getURL();

protected abstract int getPicResource();

}

/**

* 设置分享文字的内容

* @author Administrator

*

*/

public class ShareContentText extends ShareContent{

private String content;

/**

* 构造分享文字类

* @param text 分享的文字内容

*/

public ShareContentText(String content){

this.content = content;

}

@Override

protected String getContent() {

return content;

}

@Override

protected String getTitle() {

return null;

}

@Override

protected String getURL() {

return null;

}

@Override

protected int getPicResource() {

return -1;

}

@Override

protected int getShareWay() {

return WEIXIN_SHARE_WAY_TEXT;

}

}

/**

* 设置分享图片的内容

* @author Administrator

*

*/

public class ShareContentPic extends ShareContent{

private int picResource;

public ShareContentPic(int picResource){

this.picResource = picResource;

}

@Override

protected String getContent() {

return null;

}

@Override

Android分享图片和视频失败,怎么办?

目前实现一键分享功能的方式有两种:

1.需要集成第三方官方SDK包,在获得官方授权后调用其API来完成一键分享功能,例如使用友盟分享等

优点:无缝集成,功能多

缺点:需要集成官方的SDK包并通过申请官方的授权才可进行开发

2.不需要使用任何第三方SDK包,可以直接调起实现了分享功能的应用的activity来进行分享

优点:不需要使用任何第三方SDK包和申请官方授权

缺点:需要手机安装你需要分享的应用(这一点非常重要,一开始测试的时候一直不成功,提示“没有应用可执行此操作”,后来找了很久才发现是我手机没有安装相对应的应用,这也是不好方便的地方)

Android集成微信分享功能采坑:分享不成功,一闪而过,无反应等情况

Android 微信分享遇到的问题:

1.APP_ID是否输入正确

2.官网申请时输入的签名和打包的签名是否一致(请用微信推荐的签名工具对比)

注:微信平台填写的签名是ce187ed67e05c2d8879bf66bbfdfc8b9

是apk的keystore的md5去掉冒号,大写换位小写字母形式

3.分享一闪而过

有可能的bug:签名错误,appid正确,但是申请的时候吧包名和签名写反了

微信缓存问题,重新安装微信多试几次

4.请用微信官方提供的签名获取工具

5.自己直接run到手机运行的apk包注意签名应该和申请时用的签名一致(即把debug的签名改为release的)

6.分享图片的缩略图太大,超过32k

7.换设备,重新尝试

8.保证所有配置没有问题的情况下,尝试重启手机即可……(我没有开玩笑)

android 自带的分享功能如何实现分享图片

bgimg0 = getImageFromAssetsFile("Cat_Blink/cat_blink0000.png");

/**

* 从Assets中读取图片

*/

private Bitmap getImageFromAssetsFile(String fileName)

{

Bitmap image = null;

AssetManager am = getResources().getAssets();

try

{

InputStream is = am.open(fileName);

image = BitmapFactory.decodeStream(is);

is.close();

}

catch (IOException e)

{

e.printStackTrace();

}

return image;

}

上面的代码是从assets中获取图片的代码,下面的代码是分享图片的代码:

/**

 * 分享功能

 * 

 * @param context

 *            上下文

 * @param activityTitle

 *            Activity的名字

 * @param msgTitle

 *            消息标题

 * @param msgText

 *            消息内容

 * @param imgPath

 *            图片路径,不分享图片则传null

 */

public void shareMsg(String activityTitle, String msgTitle, String msgText,

String imgPath) {

Intent intent = new Intent(Intent.ACTION_SEND);

if (imgPath == null || imgPath.equals("")) {

intent.setType("text/plain"); // 纯文本

} else {

File f = new File(imgPath);

if (f != null  f.exists()  f.isFile()) {

intent.setType("image/jpg");

Uri u = Uri.fromFile(f);

intent.putExtra(Intent.EXTRA_STREAM, u);

}

}

intent.putExtra(Intent.EXTRA_SUBJECT, msgTitle);

intent.putExtra(Intent.EXTRA_TEXT, msgText);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(Intent.createChooser(intent, activityTitle));

}

系统的分享,你想要分享图片需要先把图片存到本地才能分享

基于android天气预报开发中的分享功能是怎么实现的

现在的分享基本上都是现成:

android  自带分享功能:虽然比较low,而且不同厂家显示的分享面板可能不一样,但是功能是可以用的,如果要开发写高级功能的那么需要使用到第三方的分享啦

/**

* 分享功能

*

* @param context       上下文

* @param activityTitle Activity的名字

* @param msgTitle      消息标题

* @param msgText       消息内容

* @param imgPath       图片路径,不分享图片则传null

*/

public void shareMsg(String activityTitle, String msgTitle, String msgText,

String imgPath) {

Intent intent = new Intent(Intent.ACTION_SEND);

if (imgPath == null || imgPath.equals("")) {

intent.setType("text/plain"); // 纯文本

} else {

File f = new File(imgPath);

if (f != null  f.exists()  f.isFile()) {

intent.setType("image/jpg");

Uri u = Uri.fromFile(f);

intent.putExtra(Intent.EXTRA_STREAM, u);

}

}

intent.putExtra(Intent.EXTRA_SUBJECT, msgTitle);

intent.putExtra(Intent.EXTRA_TEXT, msgText);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(Intent.createChooser(intent, activityTitle));

}3. 第三方分享:使用较多的分享-Umeng(友盟),链接:

4. 第三方分享:使用较多的分享-ShareSDK ,链接:


网站题目:android分享功能,安卓分享功能实现
本文网址:http://scyanting.com/article/dsddije.html