清单文件
<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="tencent1106856414" /> </intent-filter> </activity> <activity android:name="com.tencent.connect.common.AssistActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="orientation|keyboardHidden|screenSize"/>
权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
MyApp类
public class MyApp extends Application { { // PlatformConfig.setWeixin("wx396ea2b17e2f8938", "a33aae6c6649257cbb48de80ddb0bf90"); PlatformConfig.setQQZone("1106856414", "dHByyWjizkOJihqy"); } @Override public void onCreate() { super.onCreate(); UMConfigure.init(this, "5ada9fbbb27b0a700b000182", "umeng", UMConfigure.DEVICE_TYPE_PHONE, ""); } }
MainActivity
package com.example.disanfang; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; import com.umeng.socialize.ShareAction; import com.umeng.socialize.UMAuthListener; import com.umeng.socialize.UMShareAPI; import com.umeng.socialize.UMShareListener; import com.umeng.socialize.bean.SHARE_MEDIA; import com.umeng.socialize.media.UMWeb; import java.util.Map; public class MainActivity extends AppCompatActivity { private Button login; private Button fenxiang; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initview(); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); //分享或者登录的结果交给友盟处理 UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data); } private void initview() { login = findViewById(R.id.login); fenxiang = findViewById(R.id.fenxiang); login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { UMShareAPI.get(MainActivity.this).getPlatformInfo(MainActivity.this, SHARE_MEDIA.QQ, authListener); } }); fenxiang.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { UMWeb umWeb = new UMWeb("http://www.baidu.com"); new ShareAction(MainActivity.this).withMedia(umWeb).setDisplayList(SHARE_MEDIA.SINA, SHARE_MEDIA.QQ, SHARE_MEDIA.WEIXIN) .setCallback(shareListener).open(); } }); } private UMShareListener shareListener = new UMShareListener() { /** * @descrption 分享开始的回调 * @param platform 平台类型 */ @Override public void onStart(SHARE_MEDIA platform) { } /** * @descrption 分享成功的回调 * @param platform 平台类型 */ @Override public void onResult(SHARE_MEDIA platform) { Toast.makeText(MainActivity.this, "成功了", Toast.LENGTH_LONG).show(); } /** * @descrption 分享失败的回调 * @param platform 平台类型 * @param t 错误原因 */ @Override public void onError(SHARE_MEDIA platform, Throwable t) { Toast.makeText(MainActivity.this, "失败" + t.getMessage (), Toast.LENGTH_LONG).show(); } /** * @descrption 分享取消的回调 * @param platform 平台类型 */ @Override public void onCancel(SHARE_MEDIA platform) { Toast.makeText(MainActivity.this, "取消了", Toast .LENGTH_LONG).show(); } }; UMAuthListener authListener = new UMAuthListener() { /** * @desc 授权开始的回调 * @param platform 平台名称 */ @Override public void onStart(SHARE_MEDIA platform) { } /** * @desc 授权成功的回调 * @param platform 平台名称 * @param action 行为序号,开发者用不上 * @param data 用户资料返回 */ @Override public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) { Toast.makeText(MainActivity.this, "成功了", Toast.LENGTH_LONG).show(); StringBuilder sb = new StringBuilder(); for (Map.Entry<String, String> entry : data.entrySet()) { String key = entry.getKey(); String value = entry.getValue(); sb.append(key + ":"); sb.append(value + "\n"); } Intent intent = new Intent(); Bundle bundle = new Bundle(); bundle.putString("name", sb.toString()); // intent.putExtras(bundle); // setResult(2, intent);//返回值调用函数,其中2为resultCode,返回值的标志 // finish();//传值结束 Toast.makeText(MainActivity.this, sb.toString(), Toast.LENGTH_LONG).show(); // mTv.setText(sb.toString()); } /** * @desc 授权失败的回调 * @param platform 平台名称 * @param action 行为序号,开发者用不上 * @param t 错误原因 */ @Override public void onError(SHARE_MEDIA platform, int action, Throwable t) { Toast.makeText(MainActivity.this, "失败:" + t.getMessage(), Toast.LENGTH_LONG).show(); } /** * @desc 授权取消的回调 * @param platform 平台名称 * @param action 行为序号,开发者用不上 */ @Override public void onCancel(SHARE_MEDIA platform, int action) { Toast.makeText(MainActivity.this, "取消了", Toast.LENGTH_LONG).show(); } }; }