0

我的应用程序每天只允许使用默认的 SMS 发送器(每个 android 设备中已经存在)发送一条 SMS ,因此,一旦发送了 SMS,我需要禁用发送 SMS 按钮。

我目前正在做的是,每当用户单击发送 SMS 按钮时,我都会将他导航到设备默认消息发送者,如下所示,

        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.fromParts("sms", phoneNumber, null));
        intent.putExtra("sms_body", message);
        baseActivity.startActivity(intent);

我只能将用户导航到默认短信发件人,然后用户可以从那里发送短信,也可以取消发送短信(按返回按​​钮),现在的问题是如何通知我短信已发送?是否有任何回调或接收机制可以告诉我 SMS 已发送或 SMS 已被用户取消?

4

1 回答 1

0

这已经存在于每个安卓设备中

并不真地。

我像这样将他导航到设备默认消息发送者,

Android 设备不需要具有响应ACTION_VIEWsms方案的应用程序。您将有更好的机会ACTION_SEND,因为这是谷歌说你应该使用的。

即便如此,也会有一些设备缺少这样的应用程序。例如,并非所有 Android 设备都是手机。

如何通知我 SMS 已发送?

你不会的。用户响应您的ACTION_VIEW(或ACTION_SEND、、ACTION_SENDTOACTION_SEND_MULTIPLE)请求的操作取决于用户和用户选择的应用程序。

是否有任何回调或接收机制可以告诉我 SMS 已发送或 SMS 已被用户取消?

并不真地。首先,用户可能不会选择 SMS 客户端来响应您的Intent. 毕竟,任何应用程序都可以有一个响应您的Intent结构的活动。即使用户选择了 SMS 客户端,也不能保证该应用程序会做任何让第三方(如您的应用程序)知道该应用程序内部发生的事情的事情。

许多(但不是全部)SMS 客户端将Sms使用发送的项目更新系统提供的内容提供商。

于 2020-03-26T12:06:00.797 回答