我正在使用耳机按钮控制器,我想在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"/>
问题出在哪里?
答案 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" />