Программный запуск действия «Добавить учетную запись Google» в Android

Я разрабатываю приложение, которому для определенных параметров требуется учетная запись Google. Параметры отключены, когда учетная запись не обнаружена, но я предлагаю пользователю добавить ее, запросив всплывающее окно, если пользователь нажмет «да», действие должно начаться. Он отлично работает для отображения глобальной страницы «Добавить учетную запись», но я хочу пропустить этот ненужный дополнительный шаг. В конце концов, зачем предоставлять кому-то возможность добавить учетную запись Exchange, если требуется учетная запись Google, это просто сбивает с толку. Поэтому я хочу по умолчанию использовать новую страницу настройки учетной записи 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. Кстати, весь блок try catch в оригинальной версии находится в AlertDialog/listener.

AccountManager acm = AccountManager.get();
acm.addAccount("com.google", null, null, null, null, null, null);           
6
задан slinden77 31 May 2012 в 07:36
поделиться