Android SMS Delivery Intent始终返回-1

Moh*_*eza 9 sms android-intent

我在Android上遇到了一个奇怪的问题.当我通过我的应用程序发送短信时,我想听取发送意图.这是我到目前为止所做的:

private void shootSMS(String number,long currentTime){
    SmsManager smsManager = SmsManager.getDefault();

    Intent sentIntent = new Intent(SentBroadcastReceiver.SENT_ACTION);
    Intent deliveredIntent = new Intent(DeliveredBroadcastReceiver.DELIVERED_ACTION);

    Bundle b = new Bundle();
    b.putString("num",number);
    b.putString("record_time",currentTime+"");

    sentIntent.putExtras(b);
    deliveredIntent.putExtras(b);


    PendingIntent sentPendingIntent = PendingIntent.getBroadcast(this,(int)currentTime,sentIntent,PendingIntent.FLAG_ONE_SHOT);
    PendingIntent deliveredPendingIntent = PendingIntent.getBroadcast(this,(int)currentTime,deliveredIntent,PendingIntent.FLAG_ONE_SHOT);
    smsManager.sendTextMessage(number,null,getString(R.string.app_name),sentPendingIntent,deliveredPendingIntent);

}
Run Code Online (Sandbox Code Playgroud)

现在的问题是,当onReceive()调用我的广播接收器的getResultCode()方法时,我调用该方法,它总是返回-1!即使手机关闭,也无法跟踪短信是否已发送!

我用GoSMSPro检查了号码并发送了一条失败的短信.有趣的是,当我把我的手机在飞行模式下,我得到的结果代码等于2这是SmsManager.RESULT_ERROR_RADIO_OFF

现在问题是这里有什么问题?

Nic*_*mer 0

sendTextMessage的文档指出:

sentIntent:如果不为 NULL,则在消息发送成功或失败时广播此 PendingIntent。结果代码将为 Activity.RESULT_OK...

如果您查看Activity.RESULT_OK,则该值为 -1。

所以resultCode为-1实际上是RESULT_OK。

一般来说,最好不要查看数值,而是尝试找出它们代表哪个常量。