Android应用程序是不是真实设备会自动发送短信(android app is not sendi

2019-09-22 02:55发布

我已经开发了一个Android应用自动自动发送SMS到从它接收的SMS的装置。

我的应用程序正在模拟器罚款,但是当我真正的设备(Android手机)上运行它,那么它只能接收短信并不会自动发送效应初探。

我的代码如下。

public class SMSReciever extends BroadcastReceiver {

    String address;
    String smsMe = "I Recieved Your SMS";

    @Override
    public void onReceive(Context context, Intent intent) {
        Bundle bundle = intent.getExtras();

        Object messages[] = (Object[]) bundle.get("pdus");
        SmsMessage smsMessage[] = new SmsMessage[messages.length];
        for (int n = 0; n < messages.length; n++) {
            smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
            address = smsMessage[n].getOriginatingAddress();
        }

        Toast toast = Toast.makeText(context,"Received SMS: " +
                 smsMessage[0].getMessageBody(), Toast.LENGTH_LONG);
        toast.show();
        SmsManager sms = SmsManager.getDefault();
        sms.sendTextMessage(address, null, smsMe, null, null);
    }
}

我不知道是什么问题。 为什么它没有被正确真实的设备上工作。

Answer 1:

试试这个代码发送短信。

//---sends an SMS---
private void sendSMS(String phoneNumber, String message)
{        
    PendingIntent pi = PendingIntent.getActivity(this, 0,
        new Intent(this, class_name.class), 0);                
    SmsManager sms = SmsManager.getDefault();
    sms.sendTextMessage(phoneNumber, null, message, pi, null);        
}    

}



Answer 2:

您已经添加权限发送SMS'es到您AndroidManifest.xml -file?

<manifest ...>
    <uses-permission android:name="android.permission.SEND_SMS">
    </uses-permission>
</manifest>

这些都是相关的权限 :

SEND_SMS        Allows an application to send SMS messages.
BROADCAST_SMS   Allows an application to broadcast an SMS receipt notification
READ_SMS        Allows an application to read SMS messages.
RECEIVE_SMS     Allows an application to monitor incoming SMS messages, to record or perform processing on them.
WRITE_SMS       Allows an application to write SMS messages.

作为DYA的回答表明,使用的PendingIntent S,将有可能调试你的动作sendTextMessage() -方法 。

的错误码是如下:

Activity.RESULT_OK
Activity.RESULT_ERROR_GENERIC_FAILURE
Activity.RESULT_ERROR_RADIO_OFF
Activity.RESULT_ERROR_NULL_PDU

根据本教程 (和莫铝嘘的答案 ),还有另外一个建于发送SMS'es你可以尝试的方法:

Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra("sms_body", "default content"); 
sendIntent.setType("vnd.android-dir/mms-sms");
startActivity(sendIntent);


Answer 3:

确保u必须使manifest.xml的条目;

<receiver android:name=".ListenerSms">
   <intent-filter ><action android:name="android.provider.Telephony.SMS_RECEIVED"/>
   </intent-filter>
</receiver>


Answer 4:

,如果您有短信权限你检查

使用许可权的android:NAME = “android.permission.SEND_SMS”

在清单文件?

你也可以尝试内置SMS应用:

 Intent sendIntent = new Intent(Intent.ACTION_VIEW); 

sendIntent.putExtra( “SMS_BODY”, “默认内容”);

sendIntent.setType( “vnd.android-DIR / MMS-SMS”);

startActivity(sendIntent);



Answer 5:

您无法发送消息的原因是因为你还没有包括:

message_sc_address sms.sendTextMessage(address, message_sc_address, smsMe, null, null);

您可以从您的平板电脑/手机信息一节得到这个消息的地址。



文章来源: android app is not sending sms automatically on real device
标签: android sms