我是Android的新手。我正在尝试创建一个应用程序,该应用程序秘密地将SMS收到另一个电话号码,并从收件箱中删除已发送的SMS。目前,我编码它,但它无法正常工作。以下代码,我尝试了:
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);
}
}
}
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);
您可以通过以下代码秘密地将SMS转发到另一个NO。
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到Onwards,您的应用必须成为默认的SMS应用程序,然后您才能从电话数据库中删除文本。
希望它有帮助。