特定のオプションのためにGoogleアカウントを必要とするアプリケーションを開発しています。アカウントが検出されない場合、オプションは無効になりますが、ポップアップを介してアカウントを追加するようにユーザーに提示しています。ユーザーが[はい]をクリックすると、アクティビティが開始されます。グローバルな[アカウントの追加]ページを表示することは問題なく機能していますが、余分な手順を実行するために呼び出されないページをスキップしたいと思います。結局のところ、Googleアカウントが必要な場合にExchangeアカウントを追加するオプションを誰かに提示するのはなぜですか、それは混乱を招くだけです。そのため、デフォルトで新しいGoogleアカウント設定ページを使用します。
Java
try {
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setClassName( "com.google.android.gsf", "com.google.android.gsf.login.AccountIntroActivity");
//if(getApplicationContext().getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY) != null) {
getApplicationContext().startActivity(intent);
//} else {
//getApplicationContext().startActivity(new Intent(Settings.ACTION_ADD_ACCOUNT).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
//}
} catch ( ActivityNotFoundException e) {
e.printStackTrace();
}
これを実行すると、次の例外がスローされます。
05-29 18:24:50.741:W / System.err(10875):android.content.ActivityNotFoundException:明示的なアクティビティクラスが見つかりません{com.google.android.gsf/com.google.android.gsf.login.AccountIntroActivity }; AndroidManifest.xmlでこのアクティビティを宣言しましたか?
Androidmanifest.xml
<activity
android:name="com.google.android.gsf.login.AccountIntroActivity"/>
質問:ここで何が欠けていますか?
編集:
addAccountを使用して別の方法を試しましたが、これは機能せず、何も起こらず、エラーはスローされず、Googleアカウントの追加を開始する新しいアクティビティはありません。ちなみに、元のバージョンのtrycatchブロック全体はAlertDialog/リスナーにあります。
AccountManager acm = AccountManager.get();
acm.addAccount("com.google", null, null, null, null, null, null);