2 miaoyunzexiaobao miaoyunzexiaobao 于 2014.12.06 00:28 提问

Android获取未接来电失败

通过点击按钮获取为借来电的信息,并以对话框形式显示未接来电的号码。虚拟机中测试通过,但在真机上运行时会直接强制退出。
代码:

@Override
            public void onClick(View v) {
                final String[] projection = null;
                final String selection = null;
                final String[] selectionArgs = null;
                final String sortOrder = android.provider.CallLog.Calls.DATE + " DESC";
                Cursor cursor = null;
                try {
                    cursor = getContentResolver().query(
                            Uri.parse("content://call_log/calls"), projection,
                            selection, selectionArgs, sortOrder);
                    while (cursor.moveToNext()) {
                        String callLogID = cursor.getString(cursor
                                .getColumnIndex(android.provider.CallLog.Calls._ID));
                        String callNumber = cursor.getString(cursor
                                .getColumnIndex(android.provider.CallLog.Calls.NUMBER));
                        String callDate = cursor.getString(cursor
                                .getColumnIndex(android.provider.CallLog.Calls.DATE));
                        String callType = cursor.getString(cursor
                                .getColumnIndex(android.provider.CallLog.Calls.TYPE));
                        String isCallNew = cursor.getString(cursor
                                .getColumnIndex(android.provider.CallLog.Calls.NEW));
                        if (Integer.parseInt(callType) == (CallLog.Calls.MISSED_TYPE)
                                && Integer.parseInt(isCallNew) > 0) {
                            Toast.makeText(getApplication(),
                                    "Missed Call Found: " + callNumber,
                                    Toast.LENGTH_SHORT).show();
                        }
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
                finally {
                    cursor.close();
                }
            } 

权限列表中添加的权限为:

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android未接电话(未接电话个数,以及未接电话信息的读取)
1.未接电话的产生 /* * 未接来电不能用* Observer监听,不过当有新的未接来电时,系统会发送一个广播com.android * .phone.NotificationMgr.MissedCall_intent( * 锁屏上显示的未接来电数量就是通知监听这个广播实现的) */ 因此基于广播----->/* final IntentFilter filter = new In
Android监听未接来电
采用注册通话记录的内容观察者来监听数据库的变化,从而达到监听未接来电。 private MissedCallContentObserver mMissedCallContentObserver; mMissedCallContentObserver = new MissedCallContentObserver(this.getApplicationContext(),      
Android 获取未读未接来电和未读短信数量
一、未读短信     首先注册Observer,当有新短信或彩信来的时候会调用 onChange方法,我们可以在onChange方法中去获取未读短信和彩信,然后做一些UI上的处理! Java代码   private ContentObserver newMmsContentObserver = new ContentObserver(new Handler())
android开发笔记之锁屏界面未读短信未接来电提醒(android 4.4)
客户需求最近在做一个项目,android 4.4系统,客户要求在锁屏界面有未读短信未接来电的提醒功能。效果图关键技术(1)读取未接来电的数量主是是判断db数据库中的type和new二个字段是否同时是Calls.MISSED_TYPE 和1(type == Calls.MISSED_TYPE,new == 1).public int getUnreadCallNum(){ Log.
android N上收到未接来电,没有LED灯闪烁提示,在M上是ok的.
android N上收到未接来电,没有LED灯闪烁提示,在M上是ok的.  (1)原因 未接来电的通知创建函数是updateMissedCallNotificaion,它的builder没有设置Priority: 它设置的LED闪灯flag如下: 但google在N上新增了importance的概念,在notificationRecord的defaultImportan
Android中给图标加上数字(用于未接来电等等功能的提醒)
在我们开发一些如短消息、应用商店等应用时,会考虑在短消息的图标上加上未读短信的数量,在应用商店上加上可以升级的应用数量,这样不占太大空间还能达到提示的目的。 本节就以一个展示手机内联系人数量的例子来演示怎么在一个图标的上面加上数字的例子,也就是一个数字overlay..做过google map开发的知道overlay这个东西。  一:你可学到 手机内依据Uri查看联系人
怎么在android4.4上添加未读信息,未接来电或日历等新事件图标提醒
怎么在android4.4上添加未读信息,未接来电或日历等新事件图标提醒
清除未接来电及通知
应用中有时候会需要获取未接来电,但是当你看完这些未接来电你可能想清除未接来电的通知,及把未接来电变成已读,这时候你需要对数据库操作。 有两种方法可以达到上述需求(其实原理都一样): 一、 直接更改数据库 我们可以参考源码来进行操作,找到MissedCallNotifierImpl.java类,路径是: packages\services\Telecomm\src\com\a
Android Launcher界面未接来电和未读短信条数的显示
一 分析研究需要     我们需要实现的是当有一个未接来电和
一个把未接来电和未读短信转发到邮箱的Android app
一个把未接来电和未读短信转发到邮箱的Android app,支持默认支持QQ邮箱,理论支持163邮箱