我是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;
答案 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开始,你的应用必须成为默认短信应用,然后才能删除手机数据库中的短信。
希望它有所帮助。