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

Метод setPackage

Метод setPackage класса Intent задаёт имя пакета приложения. Система не предложит чужие обработчики для неявного intent. Часто передают packageName текущего context или строку нужного приложения.

Синтаксис

intent.setPackage(packageName)

Параметры

Параметр Описание
packageName Имя пакета, например com.example.app.

Пример

Давайте вернёмся к launcher только своего приложения:

import android.content.Intent 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 intent = Intent(Intent.ACTION_MAIN) intent.addCategory(Intent.CATEGORY_LAUNCHER) intent.setPackage(packageName) startActivity(intent) }) { Text(text = "abcde") } } } }

На экране откроется главная activity только этого приложения.

Пример

Давайте отправим ACTION_SEND только своему пакету:

import android.content.Intent 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 intent = Intent(Intent.ACTION_SEND).apply { type = "text/plain" putExtra(Intent.EXTRA_TEXT, "12345") setPackage(packageName) } startActivity(intent) }) { Text(text = "12345") } } } }

На экране система предложит только компоненты внутри текущего пакета, если они есть.

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

  • метод setComponent,
    точный класс вместо всего пакета
  • метод addCategory,
    часто вместе с ACTION_MAIN
  • класс Context,
    откуда берут packageName
  • класс Intent,
    где объявлен setPackage
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить