24

Google plus を統合したアプリケーションを開発しています。これまでのところ問題なく動作しており、ユーザー プロファイルを取得できます。

しかし、今私は次のことをしたい:

1) 私には 2 つの活動がsignInActivityありshareActivityます。

2) ユーザーが を使用して既にサインインしている場合はsignInActivity、再度サインインするように求めるべきではなく shareActivity、コンテンツを直接共有する必要があります。

3) ユーザーがサインインしておらず、次signInActivityを使用してデータを共有しようとしshareActivityた場合、アプリはユーザーにサインインしてから、データのみを共有する必要があります。この場合、ユーザーがsignInActivityアプリに戻ると、「既にサインインしています」と表示されます。

つまり、ユーザーのサインインをアプリケーション内で中央にして、すでにサインインしている場合は、どのアクティビティからでもアクセスできるようにしたいと考えています。

アクセス トークンについて聞いたことがありますが、その使用方法がわかりません。ドキュメントには、1 時間で有効期限が切れると書かれていますが、これは私が望んでいるものではありません。

セントラル Google プラス サインインを作成するにはどうすればよいですか? 出来ますか?または、各アクティビティでユーザーを認証する必要がありますか?

4

3 に答える 3

37

各アクティビティで GoogleApiClient の個別のインスタンスを管理しても、ユーザーが何度もサインインを求められることはありません。

Google+ サインイン (つまり、GoogleApiClient) は、デバイス上の Google アカウントと Google Play サービスのコア サービスへのインターフェイスを提供します。GoogleApiClient インスタンスごとの状態はありません。したがって、デバイス アカウントがアプリに対して認証されると、GoogleApiClient の新しいインスタンスが同じ状態にアクセスします。GoogleApiClient は、Google Play サービスによって管理される中央の状態にアクセスするための軽量な方法になるように特別に設計されています。

アクセス トークンに関しては幸運です。Google Play サービスがすべてのトークン管理を処理します。したがって、あなたが言うように、アクセス トークンは 1 時間しか持続しませんが、PlusClient を使用して Google API にアクセスしようとして、アクセス トークンの有効期限が切れている場合、Google Play サービスは透過的に新しいアクセス トークンを要求し、呼び出しを完了します。

詳細については、この Google I/O トークの最初の部分をご覧ください。

http://www.youtube.com/watch?v=_KBHf1EODuk

于 2013-05-30T09:24:45.593 に答える
6

この質問を読んでいる人は、Ian Barber によるこの回答と、以下の Lee による回答も確認できます。これは、Google を操作する 3 つの広範な方法と、実際に非常に役立つログインと複数のアクティビティについて説明しています。

于 2014-04-14T15:38:45.630 に答える