2011-11-10 7 views
1

私のcontentObserverで単純な予測を使用して、不在着信を検出します。Androidアプリで不明/非公開/制限付きの電話を識別する

String[] projection = new String[] {Calls.NUMBER, Calls.DATE}; 

以降...

String number = cursor.getString(0); 

ノー発信者IDを持つ呼び出しを識別できるようにしたいと思います。簡単な実験では、 "Restricted"コール(実際の電話から、#31#を使用して)の場合、返された番号は "-2"でした。電話番号として「#」を使用するエミュレータでは、「不明」と報告された「-1」からの呼び出しとして表示されます。

これを確認するためのドキュメントは見つかりませんでした。単に負の数または " - "接頭辞がそのような呼び出しを識別する確実な方法を探していますか? Calls.NUMBER_PRESENTATION次の可能な値が設定されています:

答えて

1

あなたは別のcolumを使用することができます

  • PRESENTATION_ALLOWED
    • 番号は、発信者IDの表示を許可されています。定数値:1(0x00000001の)
  • PRESENTATION_RESTRICTED
    • 数は、ユーザによって遮断されます。定数値:2(0x00000002)
  • PRESENTATION_UNKNOWN
    • 数がネットワークによって指定されたか不明なされていません。定数値:3(0x00000003)
  • PRESENTATION_PAYPHONE
    • 番号は公衆電話です。定数値:4(0x00000004)

制限されたOU不明な番号からのコールフィールドの値がですから、そのような何かを行うことができます2または3になります

String[] projection = new String[] { 
    Calls.NUMBER, 
    Calls.DATE, 
    Calls.NUMBER_PRESENTATION 
}; 

以降...

String number = cursor.getString(0); 
String type = cursor.getString(2); 
if(type == "2" || type == "3") { 
    number = "RESTICTED OR UNKNOWN"; 
} 
関連する問題