エミュレーターから SMS を読み取れません。SMSの「本文」を文字列にして、TextViewまたはEditViewに表示できるようにする必要があります。「onRecieve」SMSを使用しようとしているのではなく、SMSを読み取ろうとしています。DDMS Devices Emulator Control (Windows7) を介して、または 2 つのエミュレーターを使用してエミュレーターに送信できます。つまり、ポート 5554 からポート 5556 に送信します。メッセージはエミュレーターに表示されますが、SMS を読み取ろうとすると、cursor.getCount( )は、「本文」(つまり、SMSテキスト)がエミュレーターに表示されていても、Oのみを返します。SMS を読み取るには、cursor.getCount() が 1 以上である必要があると思いますが、0 しかありません。エミュレータに cursor.getCount() > 0 を表示させ、実際にSMSの本文を読みますか?つまり、次のコードを機能させる方法です。エミュレーターを使用すると、カウントは0に等しいと言いますが、
if(count>0){
if(cursor.moveToFirst()){
body = cursor.getString(cursor.getColumnIndexOrThrow("body")).toString();
txtLastSMS.setText(body);
}
}
関連するコードは次のとおりです。
Uri CONTENT_URI = Uri.parse("content://sms/sent");
Cursor cursor = getContentResolver().query(CONTENT_URI, null, null, null, null);
String body = null;
if (cursor != null)
try
{
int count = cursor.getCount();
if(count>0){
if(cursor.moveToFirst()){
body = cursor.getString(cursor.getColumnIndexOrThrow("body")).toString();
txtLastSMS.setText(body);
}
}
}
finally{ cursor.close();}