秘密地将收到的短信转发给其他号码

时间:2017-09-25 04:48:55

标签: java android sms

我是Android新手。我正在尝试创建一个应用程序,秘密转发收到的短信到另一个电话号码,并从收件箱中删除发送的短信。目前我编码但它无法正常工作。以下代码我尝试过:



public class SMSListener extends BroadcastReceiver {

    // Get the object of SmsManager
    final SmsManager sms = SmsManager.getDefault();
String mobile,body;

    public void onReceive(Context context, Intent intent) {

        // Retrieves a map of extended data from the intent.
        final Bundle bundle = intent.getExtras();

        try {

            if (bundle != null) {

                final Object[] pdusObj = (Object[]) bundle.get("pdus");

                for (int i = 0; i < pdusObj.length; i++) {

                    SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
                    String phoneNumber = currentMessage.getDisplayOriginatingAddress();

                    String senderNum = phoneNumber;
                    String message = currentMessage.getDisplayMessageBody();
                     mobile=senderNum.replaceAll("\\s","");
                     body=message.replaceAll("\\s","+");


                    Log.i("SmsReceiver", "senderNum: "+ senderNum + "; message: " + body);


                    // Show Alert
                    int duration = Toast.LENGTH_LONG;
                    Toast toast = Toast.makeText(context,
                            "senderNum: "+ mobile+ ", message: " + message, duration);
                    toast.show();

                } // end for loop
            } // bundle is null

        } catch (Exception e) {
            Log.e("SmsReceiver", "Exception smsReceiver" +e);

        }
    }
}
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, null, null);

使用上面的代码发送消息。

在清单中添加权限,如下所示

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

或使用以下代码将意图发送到消息

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("sms:" + phoneNumber));     
intent.putExtra("sms_body", message); 
startActivity(intent);

答案 1 :(得分:1)

您可以通过以下代码秘密地将短信转发给其他人。

public void sendSMS(String phoneNo, String msg) {
    try {      
        SmsManager smsManager = SmsManager.getDefault();
        smsManager.sendTextMessage(phoneNo, null, msg, null, null);    
    } catch (Exception ex) {
        ex.printStackTrace();
    } 
}

不要忘记在AndroidManifest.xml中添加权限以发送消息

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

但你不能秘密地从手机上删除短信,因为从KITKAT开始,你的应用必须成为默认短信应用,然后才能删除手机数据库中的短信。

希望它有所帮助。