Почему метод setDataAndType вызывает сбой моего приложения? - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь поделиться текстом в точном чате на телеграмме.Я использую Android Studio.

Если использовать только .setData (с указанием URI для открытия нужного чата), мне удается открыть нужный чат, не сообщая ничего:

Uri uri = Uri.parse("https://telegram.me/ChadID");
final String appName = "org.telegram.messenger";
Intent sharingIntent = new Intent(android.content.Intent.ACTION_VIEW);
sharingIntent.setData(uri);
sharingIntent.setPackage(appName);
startActivity(sharingIntent);

Thisкод не возвращает ошибок.

Если я поставлю .setType, я могу поделиться текстом в Telegram, но тогда я должен выбрать чат:

final String appName = "org.telegram.messenger";
String shareBody = "Here is the share content body";
Intent sharingIntent = new Intent(android.content.Intent.ACTION_VIEW);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject Here");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
sharingIntent.setPackage(appName);
startActivity(sharingIntent);

Этот код неошибки не возвращаются.

Затем я пытаюсь объединить 2 решения с .setDataAndType

Uri uri = Uri.parse("https://telegram.me/UserID");
final String appName = "org.telegram.messenger";
String shareBody = "Here is the share content body";
Intent sharingIntent = new Intent(android.content.Intent.ACTION_VIEW);
sharingIntent.setDataAndType(uri,"text/plain");
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject Here");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
sharingIntent.setPackage(appName);
startActivity(sharingIntent);

Это просто дает сбой, я думаю setDataAndType не то, что я предполагаю.Но если я сделаю

sharingIntent.setData
sharingIntent.setType

, я получу предупреждение, сообщающее, что вторая команда ослабит первую, и предложит использовать .setDataAndType

До сих пор код просто содержит только эти строки я скопировал здесь.Ничего другого.

То, что я видел, прежде чем пытаться это:

Telegram API (НЕ bot api, мне не нужен бот) .... хотя я сделал java / python/ c # / php бот telegram, я просто не могу использовать Telegram API, я не новичок в программировании, но я чувствую себя глупо, потому что я просто ничего не понимаю в Telegram API.Не стесняйтесь предлагать это, если у вас есть несколько примеров.

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

EDIT: сообщение об ошибке - ACTION_SEND to ACTION_VIEW

ошибка:

Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=https://telegram.me/... typ=text/plain pkg=org.telegram.messenger (has extras) }
...