Android之分享篇(配图适合新人):腾讯分享(QQ空间,好友,群)

                开始分享之旅第一篇,爬过好多坑,在这里总结下供和我一样的菜鸟学习,有不足希望留言指点,不喜勿喷!

    最终成果图:

自己的app界面分享跳转QQ界面分享到好友分享到空间

      001.相信看分享的都会新建Android工程了吧,所以直接开始配置第三方jar,下载地址点击打开链接

              解压缩,找到里面的这两个包,复制到Android工程的libs目录下,之后右键工程按图一路操作即可

jar架包              


     导入工程


导入类库


完成jar、的导入                  

           红4目录因为我已经添加过了所以没有,这块就是你刚才复制的2个jar包,选中点击ok即导入jar包完成。

      002.配置 AndroidManifest.xml开始:如下图添加权限:红1表示访问网络,红2表示获取网络状况

清单文件1


下面的2个Activity是他们封装的,直接复制到你的配置文件即可, <data android:scheme="tencent00000000" />  注意前面的tencent不可省略,否则分享失败!APP_Id这个必须你你提前申请的,如果没有申请点击地址:腾讯开发平台  按照官方文档的提示完成申请提交,等待审核通过即可获得APP_ID。         到这里配置就做好了,下面开始编写代码

        <!-- 调用授权时启动的Activity -->
        <activity
            android:name="com.tencent.tauth.AuthActivity"
            android:launchMode="singleTask"
            android:noHistory="true" >
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="tencent00000000" />     <!-- tencent+APP_ID  此处的APP_ID是你之前申请的 -->
            </intent-filter>
        </activity>
        <!-- 登录时的调用的activity -->
        <activity
            android:name="com.tencent.connect.common.AssistActivity"
            android:configChanges="orientation|keyboardHidden"
            android:screenOrientation="behind"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" >
        </activity>
    </application>

     003.编写代码:里面的常量我大概提了下,具体的功能看你下载的最新adk里面的文档,有详细介绍

public class MainActivity extends Activity {

     //申请的id
     private static final String APP_ID="清单文件涂红的APP_ID";
     // Tencent类是SDK的主要实现类,开发者可通过Tencent类访问腾讯开放的OpenAPI。
     private Tencent mTencent;
     private Button showBt;
     private TextView message;
     //回调实例
     private IUiListener listener;


     @Override
     protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            showBt=(Button)findViewById(R.id.button1);
            message=(TextView)findViewById(R.id.textView1);

            //显示分享的状态接口
            listener=new IUiListener() {

                    @Override
                     public void onError(UiError arg0) {
                     //shouMessage信息函数是一个抽象函数,需要在activity重写
                                showMessage("Login Error"+ arg0.errorMessage);
                     }

                     @Override
                      public void onComplete(Object arg0) {
                               showMessage("Login Success"+ arg0.toString());
                      }

                     @Override
                     public void onCancel() {
                               showMessage("Login Cancel");
                     }
             };

            showBt.setOnClickListener(new OnClickListener() {

                  @Override
                  public void onClick(View v) {
                              //分享函数
                              show();
                 }
         });
}

        //分享到QQ好友,朋友圈,空间
        public void show() {
                 if(mTencent==null){
                 initTencent();
        }

                String Title="AR 魔幻恐龙";
                String ImageUrl="http://pic51.nipic.com/file/20141016/24066_130156779281_2.jpg";//随便找的图片
                String TargetUrl="http://www.qikaqika.com/";
                String Summny="我在测试QQ分享功能,你是哪个鬼,,,成功成功";

                Bundle bundle = new Bundle();
                bundle.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_DEFAULT);
                //这条分享消息被好友点击后的跳转URL。
                bundle.putString(QQShare.SHARE_TO_QQ_TARGET_URL, TargetUrl);
                //分享的标题。注:PARAM_TITLE、PARAM_IMAGE_URL、PARAM_SUMMARY不能全为空,最少必须有一个是有值的。
               bundle.putString(QQShare.SHARE_TO_QQ_TITLE, Title);
               //分享的图片URL
               bundle.putString(QQShare.SHARE_TO_QQ_IMAGE_URL, ImageUrl);
               //分享的消息摘要,最长40个字
               bundle.putString(QQShare.SHARE_TO_QQ_SUMMARY, Summny);
               //手Q客户端顶部,替换“返回”按钮文字,如果为空,用返回代替
               bundle.putString(QQShare.SHARE_TO_QQ_APP_NAME, "??我在测试");
               mTencent.shareToQQ(this, bundle , listener);
       }


       //初始化实例
       private void initTencent(){
               mTencent=Tencent.createInstance(APP_ID, this);
       }

       //分享信息函数
       private void showMessage(String msg){
              message.setText(msg);
       }

       //分享回调:应用调用Andriod_SDK接口时,如果要成功接收到回调,需要在调用接口的Activity的onActivityResult方法
       /*
       * 第一个参数为请求码,即调用startActivityForResult()传递过去的值 
       * 第二个参数为结果码,结果码用于标识返回数据来自哪个新Activity 
       * 第三个参数为返回的信息
       */
       protected void onActivityResult(int requestCode, int resultCode, Intent data) {
               super.onActivityResult(requestCode, resultCode, data);
               if (null != mTencent)    
                        mTencent.onActivityResult(requestCode, resultCode, data);
       }
}

    004.ok已经完成了QQ分享(包括空间、好友、群、讨论组),运行即可看到效果,有了第三方框架很简单吧,祝大家早日脱离菜鸟队列!
    005.写不写无所谓了,一个单纯的QQ空间分享,直接添加在刚才的Activity里面即可,支持多张图片文档里面有红色提示目前只支持一张,具体不清楚为什么传数组进去,代码如下(布局文件就不贴代码了,简单添加了一个分享button,一个显示分享结果的textview):

         private ArrayList<String> list=new ArrayList<String>();
         //分享到QQ空间
         private void shareToQzone () {
                 if(mTencent==null){
                          initTencent();
                 }
                list.add("http://pic51.nipic.com/file/20141016/24066_130156779281_2.jpg");
                list.add("http://imgcache.qq.com/qzone/space_item/pre/0/66768.gif");
                Bundle bundle = new Bundle();


                //分享类型
                bundle.putInt(QzoneShare.SHARE_TO_QZONE_KEY_TYPE,QzoneShare.SHARE_TO_QZONE_TYPE_IMAGE_TEXT);
                bundle.putString(QzoneShare.SHARE_TO_QQ_TITLE, "标题");//必填
                bundle.putString(QzoneShare.SHARE_TO_QQ_SUMMARY, "摘要");//选填
                bundle.putString(QzoneShare.SHARE_TO_QQ_TARGET_URL, "http://www.qikaqika.com/");//必填
                bundle.putStringArrayList(QzoneShare.SHARE_TO_QQ_IMAGE_URL, list);//支持多张图片
                mTencent.shareToQzone(this, bundle, listener);
       }


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值