2016-07-05 12 views
2

私はSMSを受信し、それらを処理するAndroidアプリケーションに取り組んでいます。一瞬を除いてすべてがうまくいく。カスタムの送信者IDをアルファベットの名前に変換する方法がわかりません。例えば私は銀行からSMSを受け取り、銀行名の代わりに番号が表示されますが、別のアプリケーションでは銀行名が表示されます。ここでアンドロイド:SMSの送信者のアルファベット名はどのように取得できますか?

は私のコード

  Uri allSMSes = Uri.parse("content://sms"); 

      String[] strColumns = { TextBasedSmsColumns.ADDRESS, 
           "MAX(" + TextBasedSmsColumns.DATE + ") as " + TextBasedSmsColumns.DATE, 
           "COUNT(" + TextBasedSmsColumns.BODY + ") as number", 
           "SUM(" + TextBasedSmsColumns.READ + ") as " + TextBasedSmsColumns.READ}; 

      Cursor c = getContentResolver().query(allSMSes, strColumns, 
                "1=1) group by (" + TextBasedSmsColumns.ADDRESS ,null, null); 

である私が何をしたいことは、送信者のIDだと思うのAndroid 5.1および6.0

+0

ここで推測しますが、連絡先の番号を検索する必要があると思います。 – Memme

+0

いいえ、これは連絡先の番号ではありません。 たとえば、銀行はカードで操作に関するメッセージを送信します。私のアプリは数字(これは電話番号ではありません)を表示しますが、他のアプリケーションでは銀行の名前が表示され、この番号は連絡先には含まれません。もし私がその数を知っていれば、私は組織の名前をどのように得ることができるかを知りたい。 – pavel

答えて

1

上でそれを実行しようとしています。 これは、送信者がアルファベット(名前)に設定しないと、送信者がそれを検索できない場合に設定できます。私の知る限りでは。

編集: あなたが必要とするのは、PersonまたはCreatorという列です。

https://developer.android.com/reference/android/provider/Telephony.TextBasedSmsColumns.htmlここでは、取得できるすべての列が表示されます。

+0

@pavel editet答えは、あなたが必要とするものでなければなりません。私は希望です – user6547359

+0

私はアルファベット(名前)を取得する必要があります。 デフォルトでインストールされる別のアプリケーションでは、アルファベット(名前)が表示されますが、myはフィールドアドレスから読み取られた数値を返します。だから、送信者IDは設定されていますが、取得方法はわかりません。おそらく別のフィールドでこのアルファベット(名前)を読まなければならないかもしれませんが、どこに見つけられていません。 – pavel

+0

この列をすべてチェックしましたが、すべてにこの情報は含まれていません。 – pavel

関連する問題