Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
299 of 502 menu
◀ ▶

Метод setDataAndType

Метод setDataAndType класса Intent ставит и Uri, и строку MIME. Отдельные setData и setType могут затирать друг друга, поэтому для пары Uri+type нужен этот метод.

Синтаксис

intent.setDataAndType(uri, "text/plain")

Параметры

Параметр Описание
data Uri ресурса, который открывают или отправляют.
type MIME-тип данных по этому Uri.

Пример

Давайте отправим файл как text/plain через content Uri:

import android.content.Intent import android.net.Uri import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Button import androidx.compose.material3.Text class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { Button(onClick = { val uri = Uri.parse("content://example/abcde") val intent = Intent(Intent.ACTION_SEND) intent.setDataAndType(uri, "text/plain") intent.putExtra(Intent.EXTRA_STREAM, uri) intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) startActivity(intent) }) { Text(text = "12345") } } } }

На экране появится выбор приложения для отправки данных с заданным Uri и типом.

Пример

Давайте откроем VIEW с типом image/png:

import android.content.Intent import android.net.Uri import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Button import androidx.compose.material3.Text class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { Button(onClick = { val uri = Uri.parse("content://example/12345.png") val intent = Intent(Intent.ACTION_VIEW) intent.setDataAndType(uri, "image/png") startActivity(intent) }) { Text(text = "abcde") } } } }

На экране система предложит просмотр картинки подходящим приложением.

Смотрите также

  • метод setData,
    только Uri без MIME
  • метод setType,
    только MIME без Uri
  • метод addFlags,
    например FLAG_GRANT_READ_URI_PERMISSION
  • класс FileProvider,
    безопасный content Uri для файлов
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить