最善の策は、(部分的に) モバイル デバイス用に設計されたクライアント側フローを使用して OAuth 2.0 を使用することです。
基本的には、Web ビューを使用してユーザーを OAuth 2.0 付与ページにリダイレクトし、データへのアクセスが許可されたら、次のようにするだけです。
- Web ビュー内で認証コードをキャッチする
- Web ビューを閉じる
- リフレッシュ用の認証コードとアクセス トークンを交換する
- API への無制限のアクセスが可能になるため、更新トークンをローカル データベースに保持します => 認証フローをトリガーする必要がなくなります。
それでおしまい!新しく取得した OAuth 2.0 アクセス トークンとリフレッシュ トークンを使用すると、ユーザーに代わってユーザーのドライブ データにアクセスし、API を使用するために必要なものがすべて手に入ります。Android アカウント マネージャーを回避しました。
Android 向けの OAuth 2.0 / Web View クライアント ライブラリがどこかで利用できるようになる可能性もあります。
PS: この手法は広く使用されています。たとえば iOS で Facebook ライブラリを使用している場合、最初に Facebook アプリがインストールされているかどうかがチェックされます。Facebook アプリがインストールされていない場合、OAuth 2 と Web ビュー技術が自動的に使用されます。Google の Objective-C クライアント ライブラリもその手法を使用しています (私が聞いた限りでは、使用したことはありません)。