特定のオプションについてはGoogleアカウントが必要なアプリケーションを開発しています。 アカウントが検出されないときはオプションが無効になっていますが、ポップアップで尋ねてユーザーを追加するように提示しています。ユーザーが「はい」をクリックすると、アクティビティが開始されます。 グローバルな「アカウントを追加」ページを表示するのにうまくいきますが、余計な手順でそれをスキップします。結局のところ、なぜ誰かに、Googleアカウントが必要な場合にExchangeアカウントを追加するオプションを提示すると、それはちょっと混乱します。そこで、新しいGoogleアカウント設定ページをデフォルトにしたいと思います。Androidで「Add Google Account」アクティビティをプログラムで開始する
の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();
}
私はこれを実行すると、以下のexeceptionがスローされます。
5月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"/>
QUESTION:は私がここで何をしないのですか?
EDIT:
私はのaddAccountを使用して別の方法を試してみましたが、これは動作しません何も起こりません、エラーがスローされていない、新たな活動には、Googleアカウントを追加するために開始しません。ちなみに、元のバージョンのtry catchブロック全体は、AlertDialog /リスナーにあります。
あなたが効果的に民間のAPIを使用しようとしているAccountManager acm = AccountManager.get();
acm.addAccount("com.google", null, null, null, null, null, null);
私はd ***のように感じますが、私は自分の答えを今答えたようにフラグを立てなければならないと思います。あなたの忍耐と@Nikolay Elenkovをお手伝いしてくれてありがとう! – slinden77
"thisclassname"は実際のクラスですか? –