Android开发示例

1. 配置好Android开发环境并下载Android SDK。


2. 解压所下载的包,从lib目录中得到所需要的所有的库:

Baidu-SocialShare-SDK-Android-L3-*.*.*.jar
libammsdk.jar


3. 在Eclipse创建一个Android应用程序。


4. 修改AndroidManifest.xml,增加以下权限:

<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" />


5. 修改layout/main.xml,向其中添加button widget:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="登陆" />

    <Button
        android:id="@+id/userinfo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/login"
        android:layout_below="@+id/login"
        android:layout_marginTop="24dp"
        android:text="用户信息" />

</RelativeLayout>


6. 进入项目libs目录,将下载的包中的PcsAndroidDemo/libs中的所有jar包拷贝到此libs目录,然后并将他们加入Android程序的Build Path中。
login_android_addlib.png


7. 在assert目录下增加platforms.xml文件,声明需要支持的第三方平台。

<?xml version="1.0" encoding="utf-8"?>
<SupportPlatforms>
	<platform id="1">sinaweibo</platform> 
	<platform id="2">qqweibo</platform> 
	<platform id="3">kaixin</platform> 
	<platform id="4">qqdenglu</platform> 
	<platform id="5">weixin_session</platform> 
	<platform id="6">weixin_timeline</platform>
</SupportPlatforms>


8. 修改工程中默认的MainActivity.java。
1) Import 库

import com.baidu.sharesdk.BaiduShareException;
import com.baidu.sharesdk.BaiduSocialShare;
import com.baidu.sharesdk.ShareListener;
import com.baidu.sharesdk.Utility;


2) 设定开发者API Key。

private final static String ApiKey = "dHwDe5TTTtFEv4MOgoeTGLvX";//请替换申请客户端应用时获取的Api Key串


3) 添加按钮响应事件。

import com.baidu.sharesdk.BaiduShareException;
import com.baidu.sharesdk.BaiduSocialShare;
import com.baidu.sharesdk.ShareListener;
import com.baidu.sharesdk.Utility;

import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

    private final static String APP_KEY = "dHwDe5TTTtFEv4MOgoeTGLvX";
    private Button loginBtn;
    private Button getUserInfoBtn;
    private BaiduSocialShare socialShare;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        socialShare = BaiduSocialShare.getInstance(this, APP_KEY);

        loginBtn = (Button) findViewById(R.id.login);
        loginBtn.setOnClickListener(new AuthLisenter());

        getUserInfoBtn = (Button) findViewById(R.id.userinfo);
        getUserInfoBtn.setOnClickListener(new UserinfoLisenter());
    }

    class AuthLisenter implements OnClickListener {

        @Override
        public void onClick(View paramView) {

            socialShare.authorize(MainActivity.this,
                    Utility.SHARE_TYPE_SINA_WEIBO, new ShareListener() {

                        public void onApiComplete(String value) {
                            // TODO Auto-generated method stub
                            Toast.makeText(MainActivity.this,
                                    "api success: " + value, Toast.LENGTH_SHORT)
                                    .show();
                        }

                        public void onAuthComplete(Bundle bundle) {
                            // TODO Auto-generated method stub
                            String token = bundle.getString("access_token");
                            Toast.makeText(MainActivity.this,
                                    "login success with token: " + token,
                                    Toast.LENGTH_SHORT).show();
                        }

                        public void onError(BaiduShareException value) {
                            // TODO Auto-generated method stub
                            Toast.makeText(MainActivity.this,
                                    "auth fail with reason: " + value,
                                    Toast.LENGTH_SHORT).show();
                        }

                    });

        }

    }

    class UserinfoLisenter implements OnClickListener {

        @Override
        public void onClick(View paramView) {
            socialShare.getUserInfoWithShareType(MainActivity.this,
                    Utility.SHARE_TYPE_SINA_WEIBO, new UserInfoListener());
        }

    }

    class UserInfoListener implements ShareListener {
        final Handler handler = new Handler(Looper.getMainLooper());

        @Override
        public void onAuthComplete(Bundle values) {
            // TODO Auto-generated method stubis
        }

        @Override
        public void onApiComplete(String responses) {
            // TODO Auto-generated method stub

            final String respo = decodeUnicode(responses);
            handler.post(new Runnable() {
                @Override
                public void run() {
                    Toast.makeText(MainActivity.this, "user info: " + respo,
                            Toast.LENGTH_SHORT).show();
                }
            });
        }

        @Override
        public void onError(BaiduShareException e) {
            Toast.makeText(MainActivity.this,
                    "get user info fail reason: " + e.toString(),
                    Toast.LENGTH_SHORT).show();
        }

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    private static String decodeUnicode(String theString) {
        char aChar;
        int len = theString.length();
        StringBuffer outBuffer = new StringBuffer(len);
        for (int x = 0; x < len;) {
            aChar = theString.charAt(x++);
            if (aChar == '\\') {
                aChar = theString.charAt(x++);
                if (aChar == 'u') {
                    // Read the xxxx
                    int value = 0;
                    for (int i = 0; i < 4; i++) {
                        aChar = theString.charAt(x++);
                        switch (aChar) {
                        case '0':
                        case '1':
                        case '2':
                        case '3':
                        case '4':
                        case '5':
                        case '6':
                        case '7':
                        case '8':
                        case '9':
                            value = (value << 4) + aChar - '0';
                            break;
                        case 'a':
                        case 'b':
                        case 'c':
                        case 'd':
                        case 'e':
                        case 'f':
                            value = (value << 4) + 10 + aChar - 'a';
                            break;
                        case 'A':
                        case 'B':
                        case 'C':
                        case 'D':
                        case 'E':
                        case 'F':
                            value = (value << 4) + 10 + aChar - 'A';
                            break;
                        default:
                            throw new IllegalArgumentException(
                                    "Malformed   \\uxxxx   encoding.");
                        }

                    }
                    outBuffer.append((char) value);
                } else {
                    if (aChar == 't')
                        aChar = '\t';
                    else if (aChar == 'r')
                        aChar = '\r';
                    else if (aChar == 'n')
                        aChar = '\n';
                    else if (aChar == 'f')
                        aChar = '\f';
                    outBuffer.append(aChar);
                }
            } else
                outBuffer.append(aChar);
        }
        return outBuffer.toString();
    }

}


9.运行Android程序:

  • 程序运行后,点击登陆按钮,弹出新浪登陆界面:

login_android_input.png

  • 输入正确的用户名和密码,点击登陆按钮:

login_android_result.png

  • 成功登陆之后会在toast里面显示获取的token信息
  • 用户可以接着去点击用户信息按钮获取用户信息

login_android_userinfo.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值