QQ登入(5)获取空间相册,新建相册,上传图片到空间相册

/////////////////////////////////////////////////////////////////////

获取相册列表:必须先授权登入

1.1.  String mAppid2="222222";

    private void login() {
        Tencent    mTencent = Tencent.createInstance(mAppid2, QzonePicturesActivity.this);
        IUiListener listener = new IUiListener() {

            @Override
            public void onCancel() {
                // TODO Auto-generated method stub            
            }

            @Override
            public void onComplete(Object arg0) {
                // TODO Auto-generated method stub                
            }

            @Override
            public void onError(UiError arg0) {
                
            }
        };
        mTencent.login(this, "all", listener);//登入
           mQQAuth = QQAuth.createInstance(mAppid2, this);//获取授权
    }
授权登入

1.2.  // 获取相册信息
Albums mAlbums = new Albums(QzonePicturesActivity.this, mQQAuth.getQQToken());
mAlbums.listAlbum(new AlbumListListener());

1.3.监听获取信息

    private class AlbumListListener implements IUiListener {

        public void onComplete(final Object response) {
                JSONObject json = (JSONObject)response;
                 mPicsJson = json;
                    // 初始化UI
                    Log.i("mylog", "相册信息:"+mPicsJson.toString());
                 mAdapter = new PicGridAdapter(QzonePicturesActivity.this,mPicsJson);
                 mGridView.setAdapter(mAdapter);
        }
        @Override
        public void onCancel() {            
        }
        @Override
        public void onError(UiError arg0) {        
        }
    }
监听结果

//////////////////////////////////////////////////////////////////

新建相册:必须先授权登入

2.1(同上1.1)

2.2 添加相册信息

String albumname ="QQ登陆SDK:Add_Album测试" + System.currentTimeMillis();// 必须。相册名,不能超过30个字符。
                String albumdesc = "QQ登陆SDK:Add_Album测试" + new Date();// 相册描述,不能超过200个字符。
                String question = "question";// 如果priv取值为5,即相册是问答加密的,则必须包含问题和答案两个参数:
                String answer = "answer";// 如果priv取值为5,即相册是问答加密的,则必须包含问题和答案两个参数:
                mAlbums = new Albums(QzonePicturesActivity.this, mQQAuth.getQQToken());
                mAlbums.addAlbum(albumname, albumdesc, AlbumSecurity.publicToAll, question, answer, new AddAlbumListListener());

2.3 监听结果

    private class AddAlbumListListener implements IUiListener {

        public void onComplete(final Object response) {
            Toast.makeText(getApplicationContext(),  response.toString(), 0).show();
        }
        @Override
        public void onCancel() {            
        }
        @Override
        public void onError(UiError arg0) {        
        }
    }

//////////////////////////////////////////////////////////////////

上传照片:必须先授权登入

3.1(同上1.1)

3.2 打开本地相册 选取要上传的图片

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
                intent.addCategory(Intent.CATEGORY_OPENABLE);
                intent.setType("image/*");
                startActivityForResult(intent, REQUEST_UPLOAD_PIC);

3.3 获取选取的图片路径,并转为绝对路径

    
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if(requestCode == REQUEST_UPLOAD_PIC && resultCode == Activity.RESULT_OK){
            ContentResolver cr = this.getContentResolver();
            Cursor cursor = cr.query(data.getData(), null, null, null, null);
            cursor.moveToFirst();
            doUploadPic(cursor.getString(1));
        }
    }

3.4 上传图片

        String photodesc = "照片描述" + new Date();// 照片描述,注意照片描述不能超过200个字符。
        String x = "0-360";// 照片拍摄时的地理位置的经度。请使用原始数据(纯经纬度,0-360)。
        String y = "0-360";// 照片拍摄时的地理位置的纬度。请使用原始数据(纯经纬度,0-360)。
        mAlbums = new Albums(QzonePicturesActivity.this, mQQAuth.getQQToken());
        mAlbums.uploadPicture(uri, photodesc, null, x, y,new UpAlbumListListener());// 相册id,不填则传到默认相册

 

  源码:链接: http://pan.baidu.com/s/1qWwJQ24 

posted on 2014-04-20 02:45  clarenceV1  阅读(665)  评论(0编辑  收藏  举报

导航