Google系のアプリ使うためにGoogleアカウントでログインしたりする機能が必要っぽいので試しました
Googleアカウントにログインする方法は以下があると思います
・OSのSettings
・GoogleSignIn(com.google.android.gms:play-services-auth)を使う
後者の場合Googleアカウント名やユーザアイコンが表示したくなるのでユーザ情報を取得できるようにしたいのですが、その場合はGCPにアプリ登録などが必要となります
GCP関連は以下を参照
https://developers.google.com/identity/sign-in/android/start?hl=ja
デバック用の署名証明書のフィンガープリント(SHA-1)の取得方法は以下
C:\Users(ユーザー).android\debug.keystore
password: android
cd C:\Users\(ユーザー)\.android
keytool -list -v -keystore debug.keystoreOSのSettings
Intentで呼び出すだけ
val intent = Intent(Settings.ACTION_SETTINGS)
startActivity(intent)GoogleSignIn
Android TV 12ではSettingsのGoogleアカウント設定と同じものが呼び出されました
val activity = LocalContext.current as Activity
val launcher = rememberLauncherForActivityResult(
ActivityResultContracts.StartActivityForResult()
) { result ->
// displayNameなど更新
}
// ボタンクリックなどでintent呼び出す
val client = GoogleSignIn.getClient(
activity,
GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.build()
)
client.signInIntent.also { intent ->
launcher.launch(intent)
}Googleアカウント情報を得るには先にGCPの対応が必要です
1日1万回の呼び出し制限があるようです
val acct = GoogleSignIn.getLastSignedInAccount(activity)
acct?.let {
name = it.displayName.toString()
}Android Studio Hedgehog 2023.1.1 RC 3 built on November 3, 2023
