权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_LOGS" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.SET_DEBUG_APP" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.USE_CREDENTIALS" /> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<meta-data android:name="UMENG_APPKEY" android:value="5ad9ea86a40fa36c140002a8" /> <meta-data android:name="UMENG_CHANNEL" android:value="Channel ID" />
<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="tencent1106856424" /> </intent-filter> </activity> <activity android:name="com.tencent.connect.common.AssistActivity" android:configChanges="orientation|keyboardHidden|screenSize" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <activity android:name=".show.mine.login.view.LoginActivity" /> <activity android:name=".show.mine.register.view.RegisterActivity" /> <activity android:name=".wxapi.WXEntryActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" />
MyAPP初始化
UMConfigure.init(this, 0, null); /** * 设置组件化的Log开关 * 参数: boolean 默认为false,如需查看LOG设置为true */ UMConfigure.setLogEnabled(true);
PlatformConfig.setWeixin("wx396ea2b17e2f8938", "a33aae6c6649257cbb48de80ddb0bf90"); PlatformConfig.setQQZone("1106856424", "7eeg8p2jwgxj0Hts");
分享工具类 /** * Created by Dash on 2017/12/8. * * 友盟分享的工具类....主要是分享链接 */ public class ShareUtil { /** * 分享链接 */ public static void shareWeb(final Activity activity, String WebUrl, String title, String description, String imageUrl, int imageID, SHARE_MEDIA platform) { UMWeb web = new UMWeb(WebUrl);//连接地址 web.setTitle(title);//标题 web.setDescription(description);//描述 if (TextUtils.isEmpty(imageUrl)) { web.setThumb(new UMImage(activity, imageID)); //本地缩略图 } else { web.setThumb(new UMImage(activity, imageUrl)); //网络缩略图 } new ShareAction(activity) .setPlatform(platform) .withMedia(web) .setCallback(new UMShareListener() { @Override public void onStart(SHARE_MEDIA share_media) { } @Override public void onResult(final SHARE_MEDIA share_media) { activity.runOnUiThread(new Runnable() { @Override public void run() { if (share_media.name().equals("WEIXIN_FAVORITE")) { Toast.makeText(activity, share_media + " 收藏成功", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(activity, share_media + " 分享成功", Toast.LENGTH_SHORT).show(); } } }); } @Override public void onError(final SHARE_MEDIA share_media, final Throwable throwable) { if (throwable != null) { Log.d("throw", "throw:" + throwable.getMessage()); } activity.runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(activity, share_media + " 分享失败", Toast.LENGTH_SHORT).show(); } }); } @Override public void onCancel(final SHARE_MEDIA share_media) { activity.runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(activity, share_media + " 分享取消", Toast.LENGTH_SHORT).show(); } }); } }) .share(); } }
实体类 public class LoginActivity extends AppCompatActivity implements View.OnClickListener, ILoginActivity { /** * 请输入手机号 */ private EditText mTel; /** * 请输入密码 */ private EditText mPwd; /** * 登录 */ private Button mLogin; /** * 注册 */ private Button mReg; private ImageView mQq; private ImageView mWeixin; private ImageView mWeobi; private String screenname; private String iconurl; private Bundle bundle; private LoginPersenter loginPersenter; //分享的监听 private UMShareListener umShareListener = new UMShareListener() { @Override public void onStart(SHARE_MEDIA share_media) { Log.e("onStart", "onStart"); } @Override public void onResult(SHARE_MEDIA share_media) { Log.e("onResult", "onResult"); } @Override public void onError(SHARE_MEDIA share_media, Throwable throwable) { Log.e("onError", "onError"); } @Override public void onCancel(SHARE_MEDIA share_media) { Log.e("onCancel", "onCancel"); } }; private Button mFenx; //监听事件 private UMAuthListener umAuthListener = new UMAuthListener() { //登录成功 //获取用户信息 @Override public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) { Set<String> keySet = map.keySet(); bundle = new Bundle(); for (String string : keySet) { Log.i("TAG", string); if (string.equals("screen_name")) { //获取登录的名字//得到昵称 screenname = map.get("screen_name"); bundle.putString("screenname", screenname); } if (string.equals("profile_image_url")) { //获取登录的图片//得到头像 iconurl = map.get("profile_image_url"); bundle.putString("iconurl", iconurl); } } if (bundle != null) { setResult(RESULT_CANCELED, LoginActivity.this.getIntent().putExtras(bundle)); LoginActivity.this.finish(); } } @Override public void onError(SHARE_MEDIA platform, int action, Throwable t) { Toast.makeText(LoginActivity.this, "Authorize fail", Toast.LENGTH_SHORT).show(); } @Override public void onStart(SHARE_MEDIA share_media) { } @Override public void onCancel(SHARE_MEDIA platform, int action) { Toast.makeText(LoginActivity.this, "Authorize cancel", Toast.LENGTH_SHORT).show(); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); initView(); } private void initView() { mTel = (EditText) findViewById(R.id.tel); mPwd = (EditText) findViewById(R.id.pwd); mLogin = (Button) findViewById(R.id.login); mLogin.setOnClickListener(this); mReg = (Button) findViewById(R.id.reg); mReg.setOnClickListener(this); mQq = (ImageView) findViewById(R.id.qq); mQq.setOnClickListener(this); mWeixin = (ImageView) findViewById(R.id.weixin); mWeixin.setOnClickListener(this); mWeobi = (ImageView) findViewById(R.id.weobi); mWeobi.setOnClickListener(this); mFenx = (Button) findViewById(R.id.fenx); mFenx.setOnClickListener(this); loginPersenter = new LoginPersenter(this); } @Override public void onClick(View v) { switch (v.getId()) { default: break; case R.id.login: String mobile = mTel.getText().toString(); String password = mPwd.getText().toString(); loginPersenter.login(mobile, password); break; case R.id.reg: Intent intent = new Intent(LoginActivity.this, RegisterActivity.class); startActivity(intent); break; case R.id.qq: UMShareAPI.get(this).getPlatformInfo(LoginActivity.this, SHARE_MEDIA.QQ, umAuthListener); break; case R.id.weixin: break; case R.id.weobi: break; case R.id.fenx: //分享 new ShareAction(LoginActivity.this).withMedia(new UMWeb("http://www.baidu.com")).setDisplayList (SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE, SHARE_MEDIA.QQ, SHARE_MEDIA.QZONE) .setCallback(umShareListener) .open(); break; } } @Override protected void onPause() { super.onPause(); MobclickAgent.onPause(this); } @Override protected void onResume() { super.onResume(); MobclickAgent.onResume(this); } @Override public void onFailed(String str) { Toast.makeText(this, str, Toast.LENGTH_SHORT).show(); } @Override public void onSuccess(Object o) { if (bundle != null) { setResult(RESULT_CANCELED, this.getIntent().putExtras(bundle)); LoginActivity.this.finish(); } } }
如果想把值回传给fragment,在fragment写以下代码:
跳转:fragment--->Activity.finish()--->fragment ...从哪跳回哪去
Intent Intent = new Intent(getActivity(), LoginActivity.class);
startActivityForResult(Intent, Activity.RESULT_FIRST_USER);
重写此方法
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == Activity.RESULT_FIRST_USER) {
if (resultCode == RESULT_CANCELED) {
bundle = data.getExtras();
Glide.with(getContext()).load(bundle.getString("iconurl")).into(mYicon);
mNick.setText(bundle.getString("screenname"));
}
}
}
在Activity中第三方登录监听里获取个人信息方法写以下代码
Set<String> keySet = map.keySet();
bundle = new Bundle();
for (String string : keySet) {
Log.i("TAG", string);
if (string.equals("screen_name")) {
//获取登录的名字//得到昵称
screenname = map.get("screen_name");
bundle.putString("screenname", screenname);
}
if (string.equals("profile_image_url")) {
//获取登录的图片//得到头像
iconurl = map.get("profile_image_url");
bundle.putString("iconurl", iconurl);
}
}
if (bundle != null) {
setResult(RESULT_CANCELED, LoginActivity.this.getIntent().putExtras(bundle));
LoginActivity.this.finish();
}