0
私はSMS送信者の名前を表示する必要があるSMSアプリケーションに取り組んでいます。 たとえば、誰かがメッセージを送信した場合、アプリは電話帳からその名前を確認し、表示されていない場合は表示し、nullまたは空の文字列を表示します。 私はいくつかのコードを試しましたが、取得できませんでした。エラーがあります。ここで電話番号から電話番号を取得 - Android
Exception smsReceiverandroid.database.CursorIndexOutOfBoundsException: After last row.
はコードです:
String displayName="";
//Resolving the contact name from the contacts.
Uri lookupUri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(senderNum));
Cursor c = context.getContentResolver().query(lookupUri, new String[]{ContactsContract.Data.DISPLAY_NAME},null,null,null);
try {
c.moveToFirst();
displayName = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
//displayName = c.getString(0);
String ContactName = displayName;
Log.i("com.azeem.Debug", displayName);
Log.i("com.azeem.Debug", ContactName);
Toast.makeText(context, ContactName, Toast.LENGTH_LONG).show();
} catch (Exception e) {
Log.e("SmsReceiver", "Exception smsReceiver" +e);
}finally{
c.close();
}
senderNum
SMSを送信しているその人の数です。 エラーについて教えてください。index
にアクセスできませんが、連絡先の名前を取得するために何ができるのですか。
は、このリンクをたどっます。https://developer.android.com/training/contacts-provider/retrieve-names.html#NameMatch – ashish
は、私はあなたがカーソルのサイズを確認すべきだと思います... –