Попытка отправить электронное письмо с экрана настроек

#android #android-preferences

#Android #android-настройки

Вопрос:

Я создал XML-файл настроек с помощью действия Android Preference следующим образом:

 <PreferenceCategory
      android:title="@string/about">

     <PreferenceScreen
            android:title="@string/customer_support"
            android:summary="@string/email_description">
            <intent android:action="com.sample.android.turboweather.EMAIL_TARA"
             />
    </PreferenceScreen>

</PreferenceCategory>
  

Вот что я объявил в своем манифесте:

  <activity android:name=".EmailTara"
              android:launchMode="singleTop"
              android:screenOrientation="portrait"
              android:configChanges="keyboardHidden|orientation">
          <intent-filter>
            <action android:name="com.sample.android.turboweather.EMAIL_TARA" />
            <category android:name="android.intent.category.DEFAULT"/>

          </intent-filter>
    </activity>
  

И вот моя активность с электронной почтой:

 public class EmailAccuwx extends SettingsActivity{
    private static final int EMAIL_SUCCESS = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
        emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Tara Android Flagship Application");
        emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{"customerservice@tara.com"});
        emailIntent.putExtra(Intent.EXTRA_TEXT, "");
        emailIntent.setType("message/rfc822");
        startActivity(Intent.createChooser(emailIntent, "Email Client Chooser");

        super.onCreate(savedInstanceState);
    }



}  

Я получаю эту ошибку в logcat:

 06-07 09:43:52.570: ERROR/AndroidRuntime(1517): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.EMAIL_TARA dat=customerservice@tara.com }
  

Любая помощь приветствуется!!!

Ответ №1:

Вы объявили свой Activity в файле манифеста как "EmailTara" , но ваш класс activity вызывается "EmailAccuwx" . Кроме того, ваш Activity фильтр намерений отображает "com.sample.android.turboweather.EmailTara" списки, но в ваших настройках xml вы создаете Intent для "android.intent.action.EMAIL_TARA" .

Комментарии:

1. хорошо … я обновил свои фрагменты кода, и теперь мое электронное письмо отправляется, но мне пришлось изменить свой класс электронной почты, чтобы расширить «SettingsActivity» вместо «Activity». Кроме того, я могу выбрать это предпочтение только один раз, оно не запускает запуск email SettingsActivity во второй раз. Теперь есть идеи?