HuaWeiUtil.java 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package com.edufound.reader.util.huaweiutil;
  2. import android.app.Activity;
  3. import com.huawei.hmf.tasks.OnFailureListener;
  4. import com.huawei.hmf.tasks.OnSuccessListener;
  5. import com.huawei.hmf.tasks.Task;
  6. import com.huawei.hms.common.ApiException;
  7. import com.huawei.hms.support.account.AccountAuthManager;
  8. import com.huawei.hms.support.account.request.AccountAuthParams;
  9. import com.huawei.hms.support.account.request.AccountAuthParamsHelper;
  10. import com.huawei.hms.support.account.result.AuthAccount;
  11. import com.huawei.hms.support.account.service.AccountAuthService;
  12. import com.orhanobut.logger.Logger;
  13. public class HuaWeiUtil {
  14. //login
  15. public static final int REQUEST_SIGN_IN_LOGIN = 1002;
  16. //login by code
  17. public static final int REQUEST_SIGN_IN_LOGIN_CODE = 1003;
  18. private static AccountAuthService mAuthManager;
  19. private static AccountAuthParams mAuthParam;
  20. /**
  21. * Codelab Code
  22. * Pull up the authorization interface by getSignInIntent
  23. */
  24. public static void signIn(Activity activity) {
  25. mAuthParam = new AccountAuthParamsHelper(AccountAuthParams.DEFAULT_AUTH_REQUEST_PARAM)
  26. .setIdToken()
  27. .setAccessToken()
  28. .createParams();
  29. mAuthManager = AccountAuthManager.getService(activity, mAuthParam);
  30. activity.startActivityForResult(mAuthManager.getSignInIntent(), REQUEST_SIGN_IN_LOGIN);
  31. }
  32. public static void signInCode(Activity activity) {
  33. mAuthParam = new AccountAuthParamsHelper(AccountAuthParams.DEFAULT_AUTH_REQUEST_PARAM)
  34. .setProfile()
  35. .setAuthorizationCode()
  36. .createParams();
  37. mAuthManager = AccountAuthManager.getService(activity, mAuthParam);
  38. activity.startActivityForResult(mAuthManager.getSignInIntent(), REQUEST_SIGN_IN_LOGIN_CODE);
  39. }
  40. /**
  41. * Codelab Code
  42. * sign Out by signOut
  43. */
  44. public static void signOut() {
  45. Task<Void> signOutTask = mAuthManager.signOut();
  46. signOutTask.addOnSuccessListener(new OnSuccessListener<Void>() {
  47. @Override
  48. public void onSuccess(Void aVoid) {
  49. Logger.e("华为 signOut Success");
  50. }
  51. }).addOnFailureListener(new OnFailureListener() {
  52. @Override
  53. public void onFailure(Exception e) {
  54. Logger.e("华为 signOut fail");
  55. }
  56. });
  57. }
  58. /**
  59. * Codelab Code
  60. * Silent SignIn by silentSignIn
  61. */
  62. public static void silentSignIn(Activity activity) {
  63. Task<AuthAccount> task = mAuthManager.silentSignIn();
  64. task.addOnSuccessListener(new OnSuccessListener<AuthAccount>() {
  65. @Override
  66. public void onSuccess(AuthAccount authAccount) {
  67. Logger.e("华为 silentSignIn Success");
  68. }
  69. });
  70. task.addOnFailureListener(new OnFailureListener() {
  71. @Override
  72. public void onFailure(Exception e) {
  73. //if Failed use getSignInIntent
  74. if (e instanceof ApiException) {
  75. ApiException apiException = (ApiException) e;
  76. signIn(activity);
  77. }
  78. }
  79. });
  80. }
  81. public static void cancelAuthorization(Activity activity) {
  82. mAuthParam = new AccountAuthParamsHelper(AccountAuthParams.DEFAULT_AUTH_REQUEST_PARAM)
  83. .setProfile()
  84. .setAuthorizationCode()
  85. .createParams();
  86. mAuthManager = AccountAuthManager.getService(activity, mAuthParam);
  87. Task<Void> task = mAuthManager.cancelAuthorization();
  88. task.addOnSuccessListener(new OnSuccessListener<Void>() {
  89. @Override
  90. public void onSuccess(Void aVoid) {
  91. Logger.e("华为 cancelAuthorization Success");
  92. }
  93. });
  94. task.addOnFailureListener(new OnFailureListener() {
  95. @Override
  96. public void onFailure(Exception e) {
  97. Logger.e("华为 cancelAuthorization failure" + e.getClass().getSimpleName());
  98. }
  99. });
  100. }
  101. }