"Android.intent.extra.STREAM" - PullRequest
       0

"Android.intent.extra.STREAM"

7 голосов
/ 02 мая 2011

Во время некоторых исследований и разработок я нашел код , используя следующее утверждение

Uri uri = (Uri) getIntent().getExtras().get("android.intent.extra.STREAM");

Я просканировал весь проект, чтобы найти, вызвано ли действие из какого-либо другого действия, но сделалне могу найти.Кто-нибудь может сказать мне, что вернет это утверждение и что делает в коде выражение "android.intent.extra.STREAM", является ли оно константой, если да, каково его значение?

Заранее спасибо.

Счастливое кодирование

1 Ответ

12 голосов
/ 02 мая 2011

Этот оператор будет возвращать дополнительный с именем "android.intent.extra.STREAM".Независимо от того, какое действие вызвало намерение, это значение устанавливается, и нет простого способа узнать, что это за данные, не видя, как они используются, или где / как они были установлены.Не забывайте, что намерение может быть выдано любым действием или приложением.

Найден ваш ответ:

public static final String EXTRA_STREAM                       Since: API Level 1

A content: URI holding a stream of data associated with the Intent, used with 
ACTION_SEND to supply the data being sent.
Constant Value: "android.intent.extra.STREAM"

Итак, я бы сказал, что это результатплохого кодирования (используя значение, а не определенную статическую константу) для намерения, предназначенного для обмена изображениями.Намерение включает дополнительно Intent.EXTRA_STREAM в качестве потока данных для изображения (в данном случае), подлежащего совместному использованию.ИМО, код должен был:

Uri uri = (Uri) getIntent().getExtras().get(Intent.EXTRA_STREAM);

Но независимо от этого, он представляется документированным / стандартизированным способом присоединения двоичного потока данных к намерению.

Продолжение исследований, по-видимому, указывает на то, что он добавляет Campyre (клиент Campfire) в качестве опции «Поделиться».Таким образом, из галереи, если вы решите поделиться изображением, Campyre появится в качестве одного из вариантов.

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

Более детально:

Вот соответствующий раздел из AndroidManifest.xml:

    <activity android:name=".ShareImage"
      android:theme="@android:style/Theme.Dialog"
      android:label="@string/app_name">
      <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="image/*" />
      </intent-filter>
    </activity>

Это означает, что действие может обрабатывать Intents для совместного использования, где элемент, которым вы делитесь, является изображением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...