Ни одно приложение не может выполнить это действие. - PullRequest
0 голосов
/ 04 июля 2018

Я использую следующие фрагменты кода из официальной документации Android для обмена контентом через приложения, использующие Intent, но в нем говорится: «Ни одно приложение не может выполнить это действие». на физическом устройстве. У меня установлены мессенджеры, почтовый клиент и клиенты текстовых сообщений.

val intent = Intent().apply {
    intent.action = Intent.ACTION_SEND
    intent.type = "text/plain"
    intent.putExtra(Intent.EXTRA_TEXT, "Text to share")
}

startActivity(Intent.createChooser(intent, "Sharing"))

Ответы [ 4 ]

0 голосов
/ 14 февраля 2019

вы можете заменить startActivity(Intent.createChooser(i, "Sharing")) startActivity(i)

0 голосов
/ 04 июля 2018

Я думаю, что вы должны изменить инициализацию намерения, применив к этому:

val intent = Intent().apply {
    action = Intent.ACTION_SEND
    type = "text/plain"
    putExtra(Intent.EXTRA_TEXT, "Text to share")
}

Когда вы изменяете переменную намерения внутри приложения, вы изменяете намерение действия, а не новое намерение.

скопируйте этот код, и вы поймете, о чем я говорю:

val intent_1 = Intent().apply {
    intent.action = Intent.ACTION_SEND
    intent.type = "text/plain"
    intent.putExtra(Intent.EXTRA_TEXT, "Text to share")
}
0 голосов
/ 05 июля 2018

Это то, что я знаю:

Как сказал Фреди Медерос , измененное вами значение - Activity.getIntent, а не new Intent.

Вы должны написать так:

val intent = Intent().apply {
        action = Intent.ACTION_SEND
        type = "text/plain"
        putExtra(Intent.EXTRA_TEXT, "Text to share")
    }

или точнее:

val intent = Intent().apply {
        this.action = Intent.ACTION_SEND
        this.type = "text/plain"
        this.putExtra(Intent.EXTRA_TEXT, "Text to share")
    }

this указывает на ваш инициализированный new Intent().

0 голосов
/ 04 июля 2018

Следующий код работает вместо того, что указано выше в вопросе.

val i = Intent(Intent.ACTION_SEND)
i.type = "text/plain"
i.putExtra(Intent.EXTRA_TEXT, "Content to share")
startActivity(Intent.createChooser(i, "Sharing"))

Я не уверен, почему код в вопросе не работает, но я предполагаю, что intent связан с намерением действия и работает, когда я создаю экземпляр другого объекта из Intent класса.

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