Java接收器代碼: java
package com.example.smslistener; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.telephony.SmsMessage; public class SmsReciver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { System.out.println("短信收到"); Bundle bundle=intent.getExtras(); Object[] bytes= (Object[]) bundle.get("pdus"); for (Object b : bytes) { SmsMessage smsmessage=SmsMessage.createFromPdu((byte[])b); String body=smsmessage.getMessageBody(); String sender=smsmessage.getOriginatingAddress(); System.out.println(sender+" "+body); } } }
<receiver android:name="com.example.smslistener.SmsReciver" > <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>
<uses-permission android:name="android.permission.RECEIVE_SMS" />
4.0以上安全性較高,廣播接收者必須由用戶自主啓動 android
package com.example.smslistener; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); finish(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }