新浪微博、微信朋友圈、qq空间分享---新浪微博


新浪微博分享和微信朋友圈分享需要打包测试(即:使用自己的.keystore)。如果签名有误,需要修改签名(把打好的包安装的手机上,然后使用签名工具生成你应用的包名的签名,把分享平台中的签名修改为你生成的签名即可)。


1.导包





2.权限
 <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />


3.

   <!-- 必须注册在微博授权,分享微博时候用到 -->
        <activity android:name="com.sina.weibo.sdk.component.WeiboSdkBrowser"
            android:configChanges="keyboardHidden|orientation"
            android:windowSoftInputMode="adjustResize"
            android:exported="false" >
        </activity>
        <service android:name="com.sina.weibo.sdk.net.DownloadService"
            android:exported="false"></service>


在你打开分享的Activity中添加  com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY  动作 例如:
<activity
            android:name=".SettingActivity"
            android:configChanges="keyboardHidden|orientation"
            android:screenOrientation="portrait"
            android:label="@string/app_name" >
            <intent-filter >
                <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>


4.代码实现部分

在onCreat() 中加入如下代码

 /**
   * 新浪分享注册key
   */
  mWeiboShareAPI = WeiboShareSDK.createWeiboAPI(this, APP_ID); 
  mWeiboShareAPI.registerApp(); // 将应用注册到微博客户端
  mWeiboShareAPI.handleWeiboResponse(getIntent(), this);</span>


下面是分享的代码(文字分享)
 /**
     * 新浪微博分享
     * @param v
     */
private IWeiboShareAPI mWeiboShareAPI;
private IWXAPI api;
private Tencent mTencent;
    public void toShareXinLangWB(){
    	if (mWeiboShareAPI.isWeiboAppSupportAPI()) {
                 sendMultiMessage();
} else {
Toast.makeText(this, "没有下载安装新浪微薄客户端,请安装", Toast.LENGTH_SHORT)
.show();
}
    }
    
    /**
     * 
     */
    private void sendMultiMessage() {
        
        // 1. 初始化微博的分享消息
        WeiboMultiMessage weiboMessage = new WeiboMultiMessage();
        // 用户可以分享其它媒体资源(网页、音乐、视频、声音中的一种)
     //   weiboMessage.mediaObject = getWebpageObj();
        weiboMessage.textObject = getTextObj();
        
        // 2. 初始化从第三方到微博的消息请求
        SendMultiMessageToWeiboRequest request = new SendMultiMessageToWeiboRequest();
        // 用transaction唯一标识一个请求
        request.transaction = String.valueOf(System.currentTimeMillis());
        request.multiMessage = weiboMessage;
        
        // 3. 发送请求消息到微博,唤起微博分享界面
            mWeiboShareAPI.sendRequest(this, request);

    }
    
    
    /**
 * 创建文本消息对象。
 * 
 * @return 文本消息对象。
 */
private TextObject getTextObj() {
TextObject textObject = new TextObject(); // http://xhb.jxnews.com.cn/
textObject.actionUrl="http://www.baidu.com";
textObject.text = "我是小明,这是我们的麦客项目测试发的消息 http://www.beehood.com";
return textObject;
}
    
 protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
mWeiboShareAPI.handleWeiboResponse(intent, this); // 当前应用唤起微博分享后,返回当前应用
}

 @Override
public void onResponse(BaseResponse baseResp) {// 接收微客户端博请求的数据。
switch (baseResp.errCode) {
case WBConstants.ErrorCode.ERR_OK:
Toast.makeText(this, "分享成功", Toast.LENGTH_SHORT).show();
break;
case WBConstants.ErrorCode.ERR_CANCEL:
Toast.makeText(this, "取消分享", Toast.LENGTH_SHORT).show();
break;
case WBConstants.ErrorCode.ERR_FAIL:
Toast.makeText(this, "分享失败", Toast.LENGTH_SHORT).show();
break;
}
}


网页分享

  private void sendMultiMessage() {      
    	  // 1. 初始化微博的分享消息
        WeiboMultiMessage weiboMessage = new WeiboMultiMessage();
        weiboMessage.mediaObject = getWebpageObj();
        // 2. 初始化从第三方到微博的消息请求
        SendMultiMessageToWeiboRequest request = new SendMultiMessageToWeiboRequest();
        // 用transaction唯一标识一个请求
        request.transaction = String.valueOf(System.currentTimeMillis());
        request.multiMessage = weiboMessage;
        
        // 3. 发送请求消息到微博,唤起微博分享界面
        mWeiboShareAPI.sendRequest(SettingActivity.this, request);

    }
    
    
    /**
     * 创建多媒体(网页)消息对象。
     * 
     * @return 多媒体(网页)消息对象。
     */
    private WebpageObject getWebpageObj() {

        WebpageObject mediaObject = new WebpageObject();
        mediaObject.identify = Utility.generateGUID();
        mediaObject.title = "xioamign";
        mediaObject.description = "xiaomingshishui";
        
        // 设置 Bitmap 类型的图片到视频对象里   下面这个必须有,不然无法调起客户端
        mediaObject.setThumbImage(BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher));
        
        mediaObject.actionUrl = "http://www.baidu.com";
        mediaObject.defaultText = "Webpage 默认文案";
        return mediaObject;
    }


























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值