私はAndroid開発に不慣れで、SMSを受信した場合にトーストを表示するプログラムを作成しようとしています...これまでのコードは次のとおりです
SMSReceiveActivity.java
package sms.receive.sample;
import android.content.*;
import android.os.Bundle;
import android.telephony.*;
import android.util.Log;
import android.widget.Toast;
public class SMSReceiveActivity extends BroadcastReceiver {
private static final String TAG = "Message recieved";
@Override
public void onReceive(Context context, Intent intent) {
Bundle pudsBundle = intent.getExtras();
Object[] pdus = (Object[]) pudsBundle.get("pdus");
SmsMessage messages =SmsMessage.createFromPdu((byte[]) pdus[0]);
Log.i(TAG, messages.getMessageBody());
Toast.makeText(context, "SMS Received : "+messages.getMessageBody(),
Toast.LENGTH_LONG).show();
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="sms.receive.sample"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="15" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<application icon="@drawable/ic_launcher" label="@string/app_name">
<receiver
android:name=".SMSReceiveActivity"
android:exported="true"
android:enabled="true">
<intent-filter android:priority="999">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
</application>
SMS を AVD に (telnet) 送信すると、ドロワーに通知が届きますが、トーストは届きません。私も自分の電話で試してみましたが、同じ結果が得られました....どんな助けも大歓迎です。