考完了,沒考過所以這應該是最後一篇了,到現在還沒搞懂實作的分數都被扣到哪去了,anyway...
首先是在SMS註冊receiver還有權限
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="COM.TQC.GDD03" android:versionCode="1" android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".GDD03" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="GDD03_SM_Receiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
</application>
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
</manifest>
然後是BroadcastReceiver的內容,固定寫法就背吧
public class GDD03_SM_Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if (!intent.getAction().equals(
"android.provider.Telephony.SMS_RECEIVED"))
return;
Object[] pdus = (Object[]) intent.getExtras().get("pdus");
SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < messages.length; i++)
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
String msg = "";
for (SmsMessage message : messages) {
msg += "接到來自:\n" + message.getDisplayOriginatingAddress();
msg += "\n-----傳來的簡訊-----\n" + message.getDisplayMessageBody();
}
Toast.makeText(context, msg, Toast.LENGTH_LONG).show();
}
}


沒有留言:
張貼留言