用于发送完美工作的短信的代码,直到Android 4.3(Jelly Bean)自4.4以来停止工作(KitKat)
我只是为用户准备了短信,但他需要选择要发送的号码
我使用的代码是:
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.setData(Uri.parse("sms:"));
sendIntent.putExtra("sms_body", smsText);
activity.startActivity(sendIntent);
Run Code Online (Sandbox Code Playgroud)
由于它停止工作我想也是ACTION_SEND和ACTION_SENDTO两人都没有工作,我也试过了sendIntent.setType("vnd.android-dir/mms-sms");,又没有什么工作.
我在stackoverflow 回答1和回答2中寻找了几个答案,但两个答案都没有处理我的要求.
我想做什么:
对于主持人:这不是一个重复的问题,因为问题,并没有问完全相同的事情,这里需要发送没有电话号码的短信,没有问题和答案处理.
我可以捕捉短信,可以看到发件人的电话,正文,如果我不喜欢这个短信我可以中止广播,但我不知道如何将这个短信标记为已读,该用户可以稍后在框中读取.我有什么想法可以做到这一点?
我按照这个代码:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.setType("vnd.android-dir/mms-sms");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
它适用于Android 5.1,但不适用于Android 6.0,因为android.content.ActivityNotFoundException: No Activity found to handle Intent.那么,如何通过隐式意图打开短信应用?
编辑:
你看了我的帖子?我需要打开应用程序,而不是发送消息.
我检查这篇文章,但它不起作用!
我想打开默认的短信应用程序并加载带有一些文字的内容,但我不想提供电话号码.相反,我想将该字段留空,以便用户可以选择收件人.
这是通常调用SMS应用程序的方式:
Intent intent = new Intent(Intent.ACTION_SENDTO, "smsto:666");
Run Code Online (Sandbox Code Playgroud)
但是,我想在打开电子邮件客户端时这样做:
Intent emailIntent = new Intent(Intent.ACTION_SEND);
Run Code Online (Sandbox Code Playgroud)
是否可以这样做?如果是这样,我应该将哪些属性设置为意图,以便打开SMS应用程序?
如何确定哪个应用程序是特定操作的默认应用程序?例如我想知道哪个应用程序用于拨打电话或接收短信。有什么方法可以以编程方式找出哪个应用程序设置为默认应用程序?
我想发送短信,但不使用SmsManager类.我想用Android手机上的原生短信应用程序来做.
这就是扭曲:我不想在这样做时启动本机应用程序.是否有一些意图格式可以通过本机应用程序直接发送短信(给定sms-body和发送给它的电话号码)(用户不必点击'发送').
我用谷歌搜索相同,但所有结果和响应只是启动本机短信,等待用户手动发送短信.我已经看到这在一些应用程序中实现,如'MightyText',并希望在我的应用程序中实现.
请帮忙 !