Как работать с электронной почтой на Google TV - PullRequest
2 голосов
/ 02 февраля 2012

Мое приложение HoneyComb работает на планшетах и ​​Google TV. У меня есть настройка для отправки электронной почты во фрагменте настроек, но она возвращает ошибку «Ни одно приложение не может обработать эту функцию».

Есть ли способ отправить письмо в браузер через мое приложение, если нет доступного клиента (createChooser)?

Я также пытался отобразить сводку по электронной почте службы поддержки клиентов, но сводка не работает в HoneyComb. Я пытался это сделать, чтобы отключить Intent на телевизоре.

Ответы [ 2 ]

2 голосов
/ 02 февраля 2012

Есть ли способ отправить письмо в браузер через мое приложение, если нет доступного клиента (createChooser)?

Нет, если вы не знаете конкретное веб-приложение для электронной почты и все его детали, и это веб-приложение для электронной почты не поддерживает функцию прямой отправки электронной почты.

Либо попросите пользователя установить приложение электронной почты, либо отправьте электронное письмо самостоятельно (например, JavaMail), либо не используйте электронную почту для связи на Google TV. Я ожидаю, что немногие пользователи Google TV будут использовать электронную почту на своих телевизорах, поэтому вам нужно планировать соответственно.

1 голос
/ 27 апреля 2012

Google TV включает стандартное приложение электронной почты-заглушки, поэтому в системе появится с приложением электронной почты, даже если оно отсутствует.Для обнаружения заглушки необходима специальная проверка:

        Intent emailIntent = new Intent(Intent.ACTION_SEND);
        emailIntent.setType("plain/text");  // special mime legacy for gmail; others work
        List<ResolveInfo> match = getPackageManager().queryIntentActivities(emailIntent, 0);
        boolean hasEmailer = match.size() > 0;
        Log.w("thuuz", "has plain/text Emailer: " + hasEmailer);

        if (match.size() == 1) {
            ResolveInfo info = match.get(0);
            boolean real = true;
            if (info.activityInfo.packageName.startsWith("com.google.android.tv.frameworkpackagestubs"))
                real = false;
            Log.w("thuuz", "has *real* Emailer: " + real);
        }
...