Возможно ли Mailto из настроек xml?

Я пытаюсь создать настройки для своего приложения, и я надеялся создать область "Связаться с разработчиком", где при нажатии она откроет мне электронное письмо. Можно ли это сделать только из xml файла или мне нужно делать вещи в основном классе?

Я немного искал здесь, но ничего не видел о том, чтобы делать это из XML, так что, возможно, это невозможно? Думал, что я брошу этот вопрос там.

Спасибо!

EDIT: Вот как я на самом деле получил его для работы в будущем в поисках некоторого кода:

import android.content.Intent;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceActivity;

public class Prefs extends PreferenceActivity {

@Override

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.layout.prefs);
    Preference mailTo = (Preference) findPreference("mailTo");


    mailTo.setOnPreferenceClickListener(new OnPreferenceClickListener() 
  {
   public boolean onPreferenceClick(Preference preference) 
   {
        // Preferences

        Intent mailto = new Intent(Intent.ACTION_SEND); 
        mailto.setType("message/rfc822") ; // use from live device
        mailto.putExtra(Intent.EXTRA_EMAIL, new String[]{"[email protected]"});
        mailto.putExtra(Intent.EXTRA_SUBJECT,"Subject Here");
        mailto.putExtra(Intent.EXTRA_TEXT,"Body Here");
        startActivity(Intent.createChooser(mailto, "Select email application."));
    return true;
   }
  });

}

}

Ответы

Ответ 1

Это невозможно из xml. Однако это не так много работы из-за того, как работает андроид. Единственное, что нужно сделать, это отправить намерение, которое уведомляет систему, по которой вы хотите отправить электронное письмо, с подробной информацией, которую вы предоставляете. Приложения, которые могут это сделать, будут реагировать на это намерение и обрабатывать остальное для вас. См. http://snipplr.com/view/19973/send-email-from-android-using-intent/

Ответ 2

Вы можете сделать это непосредственно из настроек:

<Preference
        android:key="contactDevKey"
        android:title="Contact developer"
        android:summary="Tell me all about your problems">
    <intent android:action="android.intent.action.VIEW"
            android:data="@string/contact_developer_uri"/>
</Preference>

Где @string/contact_developer_uri:

<string name="contact_developer_uri">mailto:[email protected]</string>

Ограничение не является предопределенным субъектом/телом, которое возможно с использованием метода Java вместе с дополнительными функциями. Добавление extra в <intent> поддерживается с 4.0 сэндвич с мороженым благодаря this commit (см. теги фиксации). Это побочный эффект от предоставления дополнительных функций для фрагментов. Таким образом, вы можете предоставить шаблон Andrew в комментариях:

<intent android:action="android.intent.action.VIEW"
        android:data="@string/contact_developer_uri">
    <extra android:name="android.intent.extra.TEXT"
           android:value="What can I help you with?" />
    <extra android:name="android.intent.extra.SUBJECT"
           android:value="Feedback about World Changing App" />
</intent>

Использование ссылок на ресурсы рекомендуется, но не обязательно для data и value s.

К сожалению, вы не можете использовать Intent.ACTION_SEND таким образом, потому что EXTRA_EMAIL должен быть String[] и который не поддерживается как <extra android:value=.