为什么setDataAndType方法会使我的应用程序崩溃?

时间:2019-06-18 13:09:30

标签: java android android-intent telegram

我正在尝试通过电报共享文本以进行精确的聊天。我正在使用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);

此代码不会返回错误。

如果我输入.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);

此代码不会返回错误。

然后我尝试将两个解决方案与.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,我不需要一个bot)....即使我已经制作了java / python / c#/ php telegram bot,我还是无法使用Telegram API,我“我对编程并不陌生,但我感到很愚蠢,因为我只是不了解Telegram API。如果您有一些示例,请随时提出。

目标: 我的目的是实际上通过智能手机电报应用程序 发送 一条消息,以进行精确的电报聊天,而我获得的更接近的结果就是共享。我不知道是否有更好的方法可以这样做,我愿意就我遇到的代码错误提出建议。

编辑:错误消息-ACTION_SEND到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) }

0 个答案:

没有答案