添加假调用到android调用日志

时间:2013-12-20 22:20:43

标签: android calllog

我正在使用耳机按钮控制器,我想在htc安卓手机中按两次耳机按钮(双击)时,在通话日志中添加假/无效通话,以防止手机拨打最后一次通话。 我试过这个:

ContentValues cv = new ContentValues();
cv.put(CallLog.Calls.NUMBER, number);
cv.put(CallLog.Calls.DATE, System.currentTimeMillis());
cv.put(CallLog.Calls.DURATION, 0);
cv.put(CallLog.Calls.TYPE, CallLog.Calls.OUTGOING_TYPE);
cv.put(CallLog.Calls.NEW, 0);
cv.put(CallLog.Calls.CACHED_NAME, "");
cv.put(CallLog.Calls.CACHED_NUMBER_TYPE, 0);
cv.put(CallLog.Calls.CACHED_NUMBER_LABEL, "");
this.getContentResolver().insert(CallLog.Calls.CONTENT_URI, cv);

程序崩溃(App已停止错误)。 我在清单文件中设置了权限:

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

问题出在哪里?

2 个答案:

答案 0 :(得分:1)

除非您将自己的手机和adb push应用程序置于系统分区(/system/priv-app

,否则无法执行此操作

答案 1 :(得分:1)

/**
 * insert new call log
 */
public static void insertNumber(Activity activity) {
    ContentValues values = new ContentValues();
    values.put(CallLog.Calls.CACHED_NUMBER_TYPE, 0);
    values.put(CallLog.Calls.TYPE, CallLog.Calls.INCOMING_TYPE);
    values.put(CallLog.Calls.DATE, System.currentTimeMillis());
    values.put(CallLog.Calls.DURATION, 50);
    values.put(CallLog.Calls.NUMBER, "1234567");
    activity.getContentResolver().insert(CallLog.Calls.CONTENT_URI,
            values);
}


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