Android开发示例

来源:互联网 发布:快用下载软件 编辑:程序博客网 时间:2024/06/03 16:15

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

  • 了解配置Android开发环境的详细信息,请参考http://developer.android.com/index.html。
  • 请您下载Android 组件:SDK下载


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

Baidu-SocialShare-SDK-Android-L3-*.*.*.jarlibammsdk.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