我正在尝试制作VoIP应用程序,我想知道是否可以使用"呼叫日志"内容提供商执行以下操作 -
我想为VoIP呼叫添加新的呼叫记录记录以及常规呼叫的呼叫记录.如何将新记录添加到现有的呼叫日志内容提供商?
我想将自定义字段添加到呼叫日志中,例如会话ID和SIP地址(名称@域)字段.如何自定义通话记录数据库?
如果有人可以给我一个例子,那就太棒了.
Rob*_*rdi 10
关于第一个问题,您可以使用此代码将新记录添加到现有的呼叫日志内容提供程序:
public static void insertPlaceholderCall(ContentResolver contentResolver, String number){
ContentValues values = new ContentValues();
values.put(CallLog.Calls.NUMBER, number);
values.put(CallLog.Calls.DATE, System.currentTimeMillis());
values.put(CallLog.Calls.DURATION, 0);
values.put(CallLog.Calls.TYPE, CallLog.Calls.OUTGOING_TYPE);
values.put(CallLog.Calls.NEW, 1);
values.put(CallLog.Calls.CACHED_NAME, "");
values.put(CallLog.Calls.CACHED_NUMBER_TYPE, 0);
values.put(CallLog.Calls.CACHED_NUMBER_LABEL, "");
Log.d(TAG, "Inserting call log placeholder for " + number);
contentResolver.insert(CallLog.Calls.CONTENT_URI, values);
}
Run Code Online (Sandbox Code Playgroud)
(代码来自Google Voice Callback for Android)
请记住在Manifest中添加权限
<uses-permission
android:name="android.permission.READ_CONTACTS"></uses-permission>
<uses-permission
android:name="android.permission.WRITE_CONTACTS"></uses-permission>
Run Code Online (Sandbox Code Playgroud)
关于调用日志数据库的自定义,我认为不可能.
从标准SDK应用程序,您无法直接扩展或修改CallLog数据库或内容提供程序.对于基于SDK的VOIP应用程序,您应该维护自己的呼叫日志.
如果您正在为自己的设备编写自己的固件,我相信您可以通过多种方法修改呼叫日志数据库.