【问题标题】:How to count the number of missed calls in Android如何统计Android中未接来电的数量
【发布时间】:2016-03-21 21:01:19
【问题描述】:

我知道如何获得未接电话提醒,但我不知道我有多少未接电话。那么如何计算这个未接电话的数量呢?

我在oncreate使用这个代码:

TelephonyManager TelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
       TelephonyMgr.listen(new TeleListener(),PhoneStateListener.LISTEN_CALL_STATE);

之后,我使用此代码获取未接来电提醒:

class TeleListener extends PhoneStateListener {
public void onCallStateChanged(int state, String incomingNumber) {
super.onCallStateChanged(state, incomingNumber);
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
if (ring == true && callReceived == false) {
missedcallno=incomingNumber;
Toast.makeText(getApplicationContext(),"It was A MISSED CALL:" + incomingNumber,Toast.LENGTH_LONG).show();
}
default:
break;
}
}
}

【问题讨论】:

    标签: android telephonymanager


    【解决方案1】:

    查看这个答案:https://stackoverflow.com/a/7621988/5275436

    未接电话:

    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 = getContentResolver().query(CallLog.Calls.CONTENT_URI, projection,where, null, null);
               c.moveToFirst();    
               Log.d("CALL", ""+c.getCount()); //do some other operation
    

    并在清单中声明权限:

    <uses-permission android:name="android.permission.READ_LOGS"></uses-permission>
    

    关于 selection 和 selectionArgs 的详细信息

    选择 一个过滤器,声明要返回哪些行,格式化为 SQL WHERE 子句(不包括 WHERE 本身)。传递 null 将返回给定 URI 的所有行。

    selectionArgs(在哪里) 您可以在选择中包含 ?s,它将被 selectionArgs 中的值替换,按照它们在选择中出现的顺序。这些值将绑定为字符串。

    【讨论】:

    • 它显示错误 方法“getContentResolver()”未定义类型 Missedcall.TeleListener 和“选择”无法解析为变量
    • 实际上我必须在收到来自特定号码的 5 个未接电话后才发送一条消息,为此我必须计算未接电话的数量,所以请帮助我获取未接电话的数量跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多