Как я могу обрабатывать общий доступ через диалоговый запрос из другого приложения?

Я добавил фильтр намерений в ApplicationManifest.xml, чтобы вывести мое приложение в диалоговое окно «Поделиться через»:

<intent-filter>
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="image/*" />
</intent-filter>

Как я могу обработать запрос из другого приложения.

1 Можно ли провести различие между прямым запуском приложения и запуском общего доступа?

2 Как получить доступ к обмену данными?


person Mark    schedule 22.02.2011    source источник
comment
stackoverflow.com/questions/4182299/   -  person bigstones    schedule 22.02.2011


Ответы (2)


В onCreate вы можете вызвать getIntent(), чтобы посмотрите, есть ли какие-либо данные в пакете. Используйте метод getData() для получения Uri или один из методов get...Extra для получения любых других ожидаемых данных.

void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.id.main);
    ...
    Intent i = getIntent();
    Uri data = i.getUri(); 
    if(data != null) {
    // do something interesting
    }
    /* or */
    String text = i.getStringExtra(Intent.EXTRA_TEXT);
    / * do something interesting with the text */
}
person Robby Pond    schedule 22.02.2011

относительно вопроса 1: в случае прямого запуска приложения действие намерения не будет ОТПРАВИТЬ.

для вопроса 2 см. мой комментарий.

person bigstones    schedule 22.02.2011