3

そのため、通知バーにテレフォニーアプリケーションが表示されるように、不在着信の数を取得したいと思います。

だから私はこのコードを思いついた:

String[] projection = { CallLog.Calls.CACHED_NAME, CallLog.Calls.CACHED_NUMBER_LABEL, CallLog.Calls.TYPE };
String where = CallLog.Calls.TYPE+"="+CallLog.Calls.MISSED_TYPE;          
Cursor c = this.getContentResolver().query(CallLog.Calls.CONTENT_URI,projection,where, null, null);
c.moveToFirst();    
Log.d("CALL", ""+c.getCount()); //do some other operation

if(c.getCount() > 0)//...etc etc
    Toast.makeText(app.this,String.valueOf(c.getCount()), Toast.LENGTH_LONG).show(); 

このコードは私に不在着信のtoatl量を与えますが、通知バーに表示される最新の通話のみが必要です

誰かがそれを行う方法を考えていますか?

4

3 に答える 3

2

CallLog.Callsには​​、IS_READフィールドとNEWフィールドもあります。

where文字列--IS_READ=0を追加する必要があると思います。

IS_READはAPIレベル14からのものであり、NEWはAPIレベル1からのものであることに注意してください。したがって、両方をチェックします。

http://developer.android.com/reference/android/provider/CallLog.Calls.html#IS_READ

于 2012-06-14T15:16:11.870 に答える
2
String PATH = "content://call_log/calls";

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

String sortOrder = CallLog.Calls.DATE + " DESC";

StringBuffer sb = new StringBuffer();
sb.append(CallLog.Calls.TYPE).append("=?").append(" and ").append(CallLog.Calls.IS_READ).append("=?");

Cursor cursor = context.getContentResolver().query(
                Uri.parse(PATH),
                projection,
                sb.toString(),
                new String[] { String.valueOf(Calls.MISSED_TYPE), "0" },sortOrder);

https://play.google.com/store/apps/details?id=com.meaning36.msreminder

于 2015-02-08T13:03:59.150 に答える
0

gc hongによって投稿されたコードは、最新の不在着信をどのように表示していますか?

String PATH = "content://call_log/calls";

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

String sortOrder = CallLog.Calls.DATE + " DESC";

StringBuffer sb = new StringBuffer();
 sb.append(CallLog.Calls.TYPE).append("=?").append(" and 
").append(CallLog.Calls.IS_READ).append("=?");

Cursor cursor = context.getContentResolver().query(
            Uri.parse(PATH),
            projection,
            sb.toString(),
            new String[] { String.valueOf(Calls.MISSED_TYPE), "0" 
},sortOrder);
于 2017-06-15T21:40:27.007 に答える