標籤:hand handles private rip type intent 支援 工作 simple
整合google登入之前需要有一下兩點要求,只有具備一下兩點要求才能整合google登入: 1,android 運行版本4.0及更新版本 2,android 裝置支援Google服務 準備工作 首先得在Google開發人員後台上面建立一個自己的項目,網址:https://console.developers.google.com , 點擊“Credentials”選擇“OAuth Client ID”建立一個名為LoginSimpleDemo的項目: 接下來如1所示,選擇“Android Learn More”: 上面會出來讓填寫name和SHA-1的地方,在這裡如3所示擷取SHA-1的方法是用命令直接擷取,但是我的用命令擷取的時候會出現錯誤,錯誤如下所示: 其實還有另外一種方法擷取,就是在android studio中擷取(如): 1,選擇android如1 2,選中Gradle Scripts 3,開啟Gradle 4,點擊sync同步按鈕,同步一下 5,雙擊Tasks->android下面的signingReport 6,雙擊之後就會產生SHA-1,在6處 把SHA-1值填上之後,點擊create: 之後Tab選擇“OAuth agree screen”, 之後填入你的郵箱還有project名稱,之後點擊“Save”(PS:Project中不能含有google,否則會報錯): 在下面這個網址中下載google-services.json檔案,網址: https://developers.google.com/identity/sign-in/android/start-integrating?authuser=0 , 點擊 按鈕“GET A CONFIGURATION FILE”,進入到擷取gson檔案的頁面, 分別選中自己建立的app name和package name, 然後點擊下面的按鈕: 然後選中sign in模組,如,之後點擊按鈕2: 就進入了下載google-services.json檔案的頁面了,點擊下載即可,下載下來之後放到你的project下面的app的根目錄下面如: 好了,準備階段結束了,是不是感覺還是挺麻煩的,其實只要流程都看明白了,回過頭來梳理其實也沒那麼麻煩,下面是真正的整合階段了,其實整合階段很簡單,因為代碼量很少; 整合 首先需建立一個GoogleApiClient對象: private GoogleApiClient mGoogleApiClient; 之後初始化:
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestId()
.requestProfile()
.requestEmail()
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this, new GoogleApiClient.OnConnectionFailedListener(){
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
}
})
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
之後就是登入發起: Intent intent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); startActivityForResult(intent, RC_SIGN_IN); //RC_SIGN_IN是requestcode 在onActivityResult中攔擷取登入的回調: GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); handleSignInResult(result); 在登入回調中可以擷取使用者的google帳號的id,name,photourl等資訊,至此整個登入過程完成。
/**
* Google plus 登陸回調
*/
private void handleSignInResult(GoogleSignInResult result) {
Log.i(TAG, "handleSignInResult----" + result.isSuccess());
if (result.isSuccess()) {
GoogleSignInAccount account = result.getSignInAccount();
Log.i(TAG, "id--------" + account.getId() + "----name----" + account.getDisplayName() + "---photo--" + account.getPhotoUrl());
}
}
最後不要忘了加入網路訪問的許可權奧~ 我寫部落格有個習慣,就是把每一個步驟都盡量講的詳細,因為在我遇到Google登入的時候,搜了一下部落格,發現很多部落格寫的都忽略了一些很重要的過程,比如google-services.json等,所以我就決定寫一篇比較詳細的介紹整合google登入的文章,以方便初次接觸google官方一些東西的接入的習慣和方式,希望能夠帶給大家一些協助。 好了,就寫到這吧,希望這篇文章對大家有所協助。 如要轉載,請註明出處,謝謝! 歡迎關注我的部落格園部落格,地址是: https://www.cnblogs.com/zhengjunfei/
同時歡迎大家關注我的簡書部落格,地址是:
https:www.jianshu.com/u/da06e00edefa
歡迎大家掃描關注我的公眾號,我會定期發布一些部落格,分享一些知識點
android應用整合google登入