Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android在通话记录中添加号码_Android_Calllog - Fatal编程技术网

android在通话记录中添加号码

android在通话记录中添加号码,android,calllog,Android,Calllog,是否可以写入调用日志数据库??我的意思是,我想将所选号码添加到通话记录中。我试图在网上搜索教程,但找不到任何。。。虽然有一件事是肯定的,但它是可以做到的。因为我在网上看到了很多应用程序,它们可以恢复呼叫日志,所以我想我们可以通过某种方式修改呼叫历史数据库(但具体如何修改我不清楚) 我已经读过了,但它恰好是很久以前发布的 任何帮助都将不胜感激!塔克斯 链接的帖子解释得很好,所以我不知道你为什么还要问。除非保留自己的数据库或固件,否则无法修改呼叫日志。您可以使用此代码段向现有呼叫日志内容提供商添加新

是否可以写入调用日志数据库??我的意思是,我想将所选号码添加到通话记录中。我试图在网上搜索教程,但找不到任何。。。虽然有一件事是肯定的,但它是可以做到的。因为我在网上看到了很多应用程序,它们可以恢复呼叫日志,所以我想我们可以通过某种方式修改呼叫历史数据库(但具体如何修改我不清楚)

我已经读过了,但它恰好是很久以前发布的


任何帮助都将不胜感激!塔克斯

链接的帖子解释得很好,所以我不知道你为什么还要问。除非保留自己的数据库或固件,否则无法修改呼叫日志。

您可以使用此代码段向现有呼叫日志内容提供商添加新记录:

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);
}
(代码取自)

记住在清单中添加权限

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


同样,还原整个日志文件与向日志文件中注入内容是完全不同的。@GalacticCowboy我想我已经在我的问题中提到了同一篇文章。我知道这一点,但正如我所提到的,这篇文章有点老了,是关于安卓1.6时代的。我只想插入一条记录!但是,您链接的软件不会将项目“插入”到呼叫日志中,而是完全替换(覆盖)它。正如我上面所说的,这是完全不同的。@GalacticCowboy如果是这样的话,你能建议一种方法来替换调用日志吗???因为我两种方法都可以!无论是“插入”我的联系人还是替换整个通话记录。。。任何指导都是有用的!请检查此链接。。android市场上的许多应用程序都证明了这一能力。。。检查这4个例子,事实上这不是真的。通话记录可通过内容提供商访问。您可以使用内容提供商读取、更新和写入通话日志。您不能向调用日志数据库添加其他字段(列)(即:修改模式),但OP并不是这样要求的。您可能需要重新考虑您的答案。@Robbi需要获取通话记录,我使用通话记录读取所有通话记录,这很好,但如果我使用双sim卡方式,我只需要sim1历史记录,它可能是这个版本在运行Galaxy Nexus的ICS上运行得很好。谢谢罗伯托!您好,我也想这样做,但即使添加了这两个权限,它也会引发权限拒绝异常。猜猜看,回答得好。但您需要API 16中包含此权限。无论如何,如果您的应用程序使用“读取联系人/写入联系人”权限,并且您的minSdkVersion和targetSdkVersion值都设置为15或更低,则系统会隐式授予您的应用程序此权限。Ton似乎是对的。没有我的许可,它就不能工作。