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以上安全性较高,广播接收者必须由用户自主启动
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;
}
}