2015-05-22 1 views
1

Меня попросили добавить «общий» метод в одно из моих приложений для Android, которое позволяет пользователям делиться 1) Facebook 2) SMS и 3) Электронная почтаСписок типов MIME для Android?

Во время исследования я обнаружил, что для пользователей выберите из «сообщений» приложений, мне нужно создать следующую Intent:

Intent messageIntent = new Intent(Intent.ACTION_SEND); 
    messageIntent.putExtra(Intent.EXTRA_SUBJECT, title); 
    messageIntent.putExtra(Intent.EXTRA_TEXT, content); 
    messageIntent.setType("vnd.android-dir/mms-sms"); 
    // title and content set elsewhere... 

Это вид работ, хотя я также дал клиентам по электронной почте в моем списке ...

Мои вопросы:

  1. Есть ли какой-либо список типов MIME для Android, которые доступны для нас? Мне показалось, что «vnd.android-dir/mms-sms» был выведен из воздуха из моего примера.
  2. Есть ли способ получить ТОЛЬКО клиентов обмена сообщениями (то есть не почтовых клиентов) - или это практически невозможно сделать в Android.

Отказ от ответственности: приведенный выше фрагмент кода был найден из другого сообщения SO. Возможно, мне просто не удается в Google - но я не могу найти какую-либо документацию на законном сайте разработчика Android, в котором указано, что это правильный способ сделать это или какие мои варианты.

ответ

2

меня попросили, чтобы добавить метод «доля» в одном из моих Android-приложений, что позволяет пользователям обмениваться 1) Facebook 2) SMS и 3) Email

Пожалуйста, позволяют пользователям share how the users want, которые могут быть или не быть с помощью этих средств.

Я обнаружил, что, чтобы позволить пользователям выбирать из «сообщений» приложений, мне нужно создать следующее Намерение

Нет, что позволяет пользователям обмениваться через любое приложение, которое случается, чтобы поддержать это недокументированное и неподдерживаемый тип MIME. Не каждое приложение «обмена сообщениями» обязательно поддерживает этот тип MIME, и приложения, которые не являются приложениями «обмена сообщениями», могут поддерживать этот тип MIME.

Есть ли список каких-либо конкретных типов MIME для Android, которые доступны для нас?

Не совсем так, как правило, они недокументированы или не документированы (например, константа появляется где-то без объяснений).

«vnd.android-dir/mms-sms», казалось, вырвался из воздуха из моего примера.

Возможно, это произошло от the Android source code.

Есть ли способ получить ТОЛЬКО клиент обмена сообщениями (то есть не почтовые клиенты) - или это практически невозможно сделать в Android.

На планете насчитывается ~ 7 миллиардов человек. У каждого из них есть возможность понять, что такое «клиент обмена сообщениями», что такое «почтовый клиент» и т. Д. Это описательные маркетинговые термины, а не технические определения.

ACTION_SEND предназначен для совместного использования контента через MIME-тип. Любое приложение может предлагать поддержку ACTION_SEND для любого заданного типа MIME, поскольку разработчики любого приложения могут писать то, что они хотят. Независимо от того, является ли какое-либо данное приложение «клиентом обмена сообщениями», «почтовым клиентом» или чем-то еще до конечного пользователя. У вас нет средств для чтения умов пользователей, и у вас нет законных средств, чтобы другие программисты не писали то, что им нужно.

Теперь существуют различные скрипты-кидги для ограничения списка до определенных приложений по идентификатору приложения (a.k.a., название пакета). Однако, хотя есть только один Facebook (хотя, кажется, я помню, что у них есть несколько приложений), есть много приложений для SMS и электронной почты, и вам будет сложно, если не невозможно, составить список всех их, не говоря уже о том, чтобы поддерживать этот список с течением времени.

+0

Это было то, что рассказывала мне моя кишка. К сожалению, функции/пользовательский интерфейс мне дают от «выше» (т. Е. Менеджеров проектов/дизайнеров). Я скажу им, что это не способ Android, и посмотреть, что они говорят. – ssawchenko