首先还是得先到QQ的开发平台下载SDK和Demo,先导入eclipse观察,然后决定哪些资源导入AS
先看以WebView方式登录QQ的集成
1.导入资源
2.配置清单文件
配置权限和activity
3.调用SDK的方法
/**
* 打开登录认证与授权页面
*
* @param String
* clientId 申请时分配的appid
* @param String
* target 打开登录页面的方式:“_slef”以webview方式打开; "_blank"以内置安装的浏览器方式打开
* @author John.Meng<arzen1013@gmail> QQ:3440895
* @date 2011-9-5
*/
private void auth(String clientId, String target) {
Intent intent = new Intent(TAuthDemoActivity.this, com.tencent.tauth.TAuthView.class);
intent.putExtra(TAuthView.CLIENT_ID, clientId);
intent.putExtra(TAuthView.SCOPE, scope);
intent.putExtra(TAuthView.TARGET, target);
// intent.putExtra(TAuthView.CALLBACK, CALLBACK);
startActivity(intent);
}
代码示例:
清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.example.test"
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" >
</uses-permission>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<!--QQ 登录webview方式-->
<activity
android:name="com.tencent.tauth.TAuthView"
android:configChanges="keyboardHidden|navigation|orientation"
android:launchMode="singleTask">
<intent-filter>
<category android:name="android.intent.category.BROWSABLE" />
<!-- <data android:scheme="auth"/> -->
</intent-filter>
</activity>
<!--QQ 登录webview方式 end-->
</application>
</manifest>
mainactiv ity代码
public class MainActivity extends AppCompatActivity {
public String mAppid = "222222";// me申请时分配的appid
private String scope = "all";// 授权范围
private AuthReceiver receiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void login(View view) {
registerIntentReceivers();
auth(mAppid, "_self");
}
private void registerIntentReceivers() {
receiver = new AuthReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(TAuthView.AUTH_BROADCAST);
registerReceiver(receiver, filter);
}
private void unregisterIntentReceivers() {
unregisterReceiver(receiver);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterIntentReceivers();
}
/**
* 打开登录认证与授权页面
*
*
* clientId 申请时分配的appid
*
* target 打开登录页面的方式:“_slef”以webview方式打开; "_blank"以内置安装的浏览器方式打开
*
*/
private void auth(String clientId, String target) {
Intent intent = new Intent(MainActivity.this, com.tencent.tauth.TAuthView.class);
intent.putExtra(TAuthView.CLIENT_ID, clientId);
intent.putExtra(TAuthView.SCOPE, scope);
intent.putExtra(TAuthView.TARGET, target);
// intent.putExtra(TAuthView.CALLBACK, CALLBACK);
startActivity(intent);
}
/**
* 广播的侦听,授权完成后的回调是以广播的形式将结果返回
*
* @author John.Meng<arzen1013@gmail> QQ:3440895
* @date 2011-9-5
*/
public class AuthReceiver extends BroadcastReceiver {
private static final String TAG = "AuthReceiver";
@Override
public void onReceive(Context context, Intent intent) {
Bundle exts = intent.getExtras();
String raw = exts.getString("raw");
String access_token = exts.getString(TAuthView.ACCESS_TOKEN);
String expires_in = exts.getString(TAuthView.EXPIRES_IN);
String error_ret = exts.getString(TAuthView.ERROR_RET);
String error_des = exts.getString(TAuthView.ERROR_DES);
Log.i(TAG,
String.format("raw: %s, access_token:%s, expires_in:%s",
raw,
access_token,
expires_in));
}
}
}