2013-02-26 2 views
0

В качестве примера того, что я пытаюсь сделать: когда я делюсь статьей из Pocket в Evernote, Pocket форматирует текст и отправляет всю статью в Evernote, тогда как когда я делюсь статьей с мое приложение, я просто получаю URL-адрес. Я знаю, что на стороне Кармана выполняется код, поскольку перед тем, как он делится, открывается диалоговое окно «Обработка».Получите конкретный контент через Share Intent в Android

Мой вопрос: знает ли Pocket о том, что он делится с Evernote и форматирует его вывод специально для Evernote, или Evernote каким-то образом регистрируется в качестве приложения для редактирования текста, и поэтому предлагает Pocket поделиться полной статьей, а не просто URL?

Если последний, как это делается? Должен ли я регистрировать свое приложение для получения типов mime, кроме text/plain? Вот часть кода, который я использую в настоящее время для получения текста:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    rcvIntent = getIntent(); 
    String rcvAction = rcvIntent.getAction(); 
    String rcvType = rcvIntent.getType(); 
    if (Intent.ACTION_SEND.equals(rcvAction) && "text/plain".equals(rcvType)) 
     displaySentText(rcvIntent); 
} 
private void displaySentText (Intent rcvIntent) { 
    String sharedText = rcvIntent.getStringExtra(Intent.EXTRA_TEXT); 
    if (sharedText == null) return; 
    if (sharedText.startsWith("http://")) { 
     ConnectivityManager connMgr = (ConnectivityManager) getSystemService (Context.CONNECTIVITY_SERVICE); 
     NetworkInfo networkInfo = connMgr.getActiveNetworkInfo(); 
     if (networkInfo != null && networkInfo.isConnected()) { 
      new DownloadWebpageText().execute(sharedText); 

Заранее благодарен!

Edit:

отладчик не дает много информации. Когда я делюсь с Evernote, он показывает:

02-27 16:36:50.005: I/ActivityManager(2257): START u0 {act=android.intent.action.SEND typ=text/plain flg=0x80001 cmp=com.evernote/.note.composer.NewNoteAloneActivity (has clip) (has extras)} from pid 31094 

И когда я разделяю мое приложение, я получаю очень похожее сообщение:

02-27 16:37:39.700: I/ActivityManager(2257): START u0 {act=android.intent.action.SEND typ=text/plain flg=0x80001 cmp=st.olm.readmemberalpha/.WebText (has clip) (has extras)} from pid 31094 

Они оба текста/простые, но содержание отличается , Я также проверил содержимое клипа с (has clip) выше, но содержимое такое же, как и дополнительное.

ответ

0

После прочтения карманного блога, похоже, что Pocket действительно форматирует текст статьи для Evernote. Доля intent клип от ClipData class, и просто дубликат дополнительных и вместо него используется так апите 11.

Казалось бы, что нет никакого способа, по крайней мере, с помощью акций намерений, и, насколько мне известно, в принуждать другое приложение к предоставлению конкретных данных (типов).

Смежные вопросы