如何在Android中没有SMS_READ或类似权限的情况下发送短信并接收结果

时间:2015-10-23 11:44:39

标签: android sms android-permissions

我想发送短信并在不使用任何短信相关权限的情况下了解是否发送短信。

我尝试过使用intent并检查活动结果,但这不一致,并且高度依赖于处理短信的应用程序。有时它有时会起作用。

我可以使用READ_SMS权限和使用ContentObserver来执行此操作,但我想知道是否可以在不需要用户的任何短信相关权限的情况下进行。

我的用例将是这样的:

  • 用户按下我的应用中的按钮
  • 默认短信应用程序打开,其中包含我准备好的消息正文
  • 用户在喜欢或不喜欢的情况下编辑邮件,然后发送短信(或不发送短信)

我只是想知道他/她是否发送了这条消息。如果收到,我不在乎。我已经能够使用内容观察者做我想要的但是需要我使用SMS_READ权限。如果可能,我不想使用任何与SMS相关的许可。

1 个答案:

答案 0 :(得分:1)

对不起,您通常不会想要什么。

ACTION_SENDACTION_SENDTOACTION_VIEW等不是首先为startActivityForResult()设计的。没有应用程序必须返回任何类型的结果。即使应用程序返回结果,该结果也不必指示该人是否实际发送了SMS,或者用户是否将SMS发送到您最初请求的地址。

除了通过您正在使用的受权限保护的API之外,不要求任何SMS客户端以某种方式让第三方知道发送的SMS消息。事实上,在没有权限的情况下提供此信息将违反隐私。

如果您不想保留与短信相关的权限,那很好,但是您将不得不知道用户是否实际发送了短信。