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