生活随笔
收集整理的這篇文章主要介紹了
Android项目集成谷歌账户登录
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? 在做國外項目的時候,許多需要集成谷歌賬戶登錄功能。
????集成谷歌登錄后,能直接調用谷歌的賬戶登錄界面進行登錄操作(包括注冊新用戶、忘記密碼等),同時會把賬戶信息保存到設備的account?manager中進行管理,檢測設備是否已登錄了谷歌賬戶,獲取已登錄的谷歌賬戶的相關信息。
????集成谷歌賬戶登錄方式與國內集成qq、微信等第三方登錄有些類似,大體流程都是先去相應開發者平臺注冊,然后獲取到開發包(sdk或遠程依賴api等),最后按樣例代碼集成。
????谷歌登錄開發者平臺注冊地址為https://console.firebase.google.com/,并不是在https://console.developers.google.com/上進行注冊,一開始我也是參考網上的帖子?在谷歌的developers網站上進行注冊, 流但發現流程一直走不通,最后發現需要在firebase網站上進行注冊,具體流程直接上圖,簡單粗暴明了:
? ? 1.
? ? 2.
? ? 3.
4.
? ? 5.
? ? 6.
? ?通過上述6步就能獲取到一個google-service.json文件,把它拷貝的項目的根目錄下,如圖6,點圖6的CONTINUE按鈕,會有直接示例代碼。
? ? 下面是我的簡單測試代碼,需要的話可以參考一下:
public class MainActivity extends FragmentActivity implements View.OnClickListener {private static final String LOG_TAG = "GAccountDemo";private static final int RC_SIGN_IN = 0x100;private GoogleApiClient mGoogleApiClient;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);SignInButton signInButton = findViewById(R.id.sign_in_button);signInButton.setSize(SignInButton.SIZE_STANDARD);signInButton.setOnClickListener(this);GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestId().requestProfile().requestEmail().build();mGoogleApiClient = new GoogleApiClient.Builder(this).enableAutoManage(MainActivity.this, new GoogleApiClient.OnConnectionFailedListener() {@Overridepublic void onConnectionFailed(@NonNull ConnectionResult connectionResult) {}}).addApi(Auth.GOOGLE_SIGN_IN_API, gso).build();}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.sign_in_button:Intent intent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);startActivityForResult(intent, RC_SIGN_IN); //RC_SIGN_IN是requestcodebreak;}}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (requestCode == RC_SIGN_IN) {GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);handleSignInResult(result);}}private void handleSignInResult(GoogleSignInResult result) {if (result.isSuccess()) {GoogleSignInAccount account = result.getSignInAccount();Log.i(LOG_TAG, "id--------" + account.getId() + "----name----" + account.getDisplayName() + "---photo--" + account.getPhotoUrl());}}
}
? ? 主module的guild.gradle中的依賴,注意保證三個依賴的版本一致性:
dependencies {implementation fileTree(dir: 'libs', include: ['*.jar'])compile 'com.google.firebase:firebase-core:11.2.0'compile 'com.google.firebase:firebase-auth:11.2.0'compile 'com.google.android.gms:play-services-auth:11.2.0'
}
? ? 根目錄下的build.gradle:
? ? sha1的獲取方式就不在這復述了,網上有很多。最后,需要注意兩個事:
????????1.注冊網址需要翻墻;
????????2.測試手機需要翻墻且支持google?service。
總結
以上是生活随笔為你收集整理的Android项目集成谷歌账户登录的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。