新浪开发平台实现分享

**1**  配置权限,如果已经添加了相应的权限,就不要重复添加了

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
**2**  配置返回微博的activity

在进行微博分享前,需要在AndroidManifest.xml中,在需要接收消息的Activity(唤起微博主程序的类)里声明对应的Action:ACTION_SDK_REQ_ACTIVITY,如下所示:


<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 android:name=".activity.SinaActivity">
    
    <intent-filter>
        <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />

        <category android:name="android.intent.category.DEFAULT" />
    intent-filter>
activity>
**3**
选择集成sdk方式

在集成微博SDK前,有两种方式来集成微博SDK:

直接导入weibosdkcore.jar:适用于只需要授权、分享、网络请求框架功能的项目
引用WeiboSDK工程(Library):适用于微博授权、分享,以及需要登陆按钮、调用OpenAPI的项目
在这里我采用方式1,因为我不需要登录按钮和直接调用OpenAPI

4 将应用注册到微博

mWeiboShareAPI = WeiboShareSDK.createWeiboAPI(this, Constants.APP_KEY);
mWeiboShareAPI.registerApp();   // 将应用注册到微博客户端

到这里,配置已经完成,可以直接调用分享代码了。
示例:分享网页



    private IWeiboShareAPI mWeiboShareAPI;

    //这是分享网页的配置
          WebpageObject mediaObject = new WebpageObject();
            mediaObject.identify = Utility.generateGUID();
            mediaObject.title = "title";
            mediaObject.description = "描述";
            Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
            mediaObject.setThumbImage(bitmap);
            mediaObject.actionUrl ="http://www.baidu.com";

/**
         * 无论分享什么 都要添加这些代码 通过 
         * request.multiMessage = weiboMessage;
         * 实现具体内容的分享(网页 图片 文字 .....)
         */
         WeiboMultiMessage weiboMessage = new WeiboMultiMessage();//初始化微博的分享消息
            weiboMessage.mediaObject=mediaObject;
         SendMultiMessageToWeiboRequest request = new SendMultiMessageToWeiboRequest();
         request.transaction = String.valueOf(System.currentTimeMillis());
         request.multiMessage = weiboMessage;
          /**
          * 唤醒微博分享页面 第一种这种方式
          * 只有安装了客户端才可以
          */
        mWeiboShareAPI.sendRequest(MainActivity.this, request);
 /**
          * 唤醒微博分享页面第二种方式
          * 如果安装了客户端 就调起客户端 如果没有安装 就调起网页
          */

         AuthInfo authInfo = new AuthInfo(this, SinaConstant.APP_KEY, SinaConstant.REDIRECT_URL, SinaConstant.SCOPE);
         mWeiboShareAPI.sendRequest(this, request, authInfo, "", new WeiboAuthListener() {

             @Override
             public void onWeiboException( WeiboException arg0 ) {
             }

             @Override
             public void onComplete( Bundle bundle ) {
             }

             @Override
             public void onCancel() {
             }
         });

所需要的值

publicinterface Constants {
publicstaticfinal String APP_KEY      = "2045436852";       // 应用的APP_KEY
publicstaticfinal String REDIRECT_URL = "http://www.sina.com";// 应用的回调页
publicstaticfinal String SCOPE =                            // 应用申请的高级权限
"email,direct_messages_read,direct_messages_write,"
            + "friendships_groups_read,friendships_groups_write,statuses_to_me_read,"
            + "follow_app_official_microblog," + "invitation_write";
}

常见问题:
① 分享页面出现 {“error:”userinfo error!”,”pos”:”5}
原因: 应用在微博平台未通过审核时,要添加测试账号(好像只有网页出现这种情况)
新浪开发平台实现分享_第1张图片

② 文件不存在(C8998)
微博平台要添加包名和签名
测试时要用正式的包
平台的回调页要和代码的一致
新浪开发平台实现分享_第2张图片
新浪开发平台实现分享_第3张图片
③ 点击分享 客户端没响应
我遇到的问题是因为我的分享没有内容,添加上分享内容就行了。
没有添加描述也不会调起,如果不想添加描述,值可以为“”

④ 分享的图片不能大于32K

你可能感兴趣的:(Android)