0

我知道我们可以通过这种方式通过内置短信应用程序发送短信 -

Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.setData(Uri.parse("sms:"));  
sendIntent.putExtra("sms_body", "");
startActivity(sendIntent);

但是在我的应用程序中,我想在发送给接收者之前修改短信正文的一些文本。有什么办法吗?

我知道我可以使用 SmsManager 的 sendTextMessage 方法来做到这一点。我只想知道,内置的短信应用也可以吗?

谢谢你。

4

1 回答 1

0

这是不可能的,因为 SmsManager 是框架的一部分。你不能劫持它。

编辑:您可以做的是将您的应用清单更改为接收ACTION_VIEW和 uri sms:,就像默认消息传递应用程序一样,然后在启动时将更改正文并启动默认消息传递应用程序。

编辑:将下面的意图过滤器添加到您的应用程序中,然后从意图中额外添加“sms_body”,这次由 createChooser 重新广播

 <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <action android:name="android.intent.action.SENDTO" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="sms" />
    <data android:scheme="smsto" />
 </intent-filter>
于 2012-08-29T21:49:36.187 回答