我正试图在Android Studio中实现一些假的通话记录。当我在安装了应用程序的情况下运行模拟器时,它首先显示Launcher 3已停止工作,然后当我单击add call log按钮时它显示‘不幸的是callLog应用程序已停止工作’。我认为我可能需要解析器if语句中的某些内容,因为它以红色突出显示,并显示需要用户权限的提示。来自主activity类的代码是:
package com.example.calllogexample;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.net.Uri;
import android.provider.CallLog;
import android.util.Log;
public class CallLogActivity {
public void AddNumToCallLog(ContentResolver resolver ,String strNum, int type, long timeInMiliSecond) {
while (strNum.contains("-")) {
strNum = strNum.substring(0, strNum.indexOf('-')) + strNum.substring(strNum.indexOf('-') + 1, strNum.length());
}
ContentValues values = new ContentValues();
values.put(CallLog.Calls.NUMBER, strNum);
values.put(CallLog.Calls.DATE, timeInMiliSecond);
values.put(CallLog.Calls.DURATION, 0);
values.put(CallLog.Calls.TYPE, 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("AddToCallLog", "Inserting call log placeholder for " + strNum);
if (null != resolver) {
resolver.insert(CallLog.Calls.CONTENT_URI, values);
}
}
public void DeleteNumFromCallLog(ContentResolver resolver, String strNum) {
try {
String strUriCalls = "content://call_log/calls";
Uri UriCalls = Uri.parse(strUriCalls);
if (null != resolver) {
resolver.delete(UriCalls, CallLog.Calls.NUMBER + "=?", new String[]{strNum});
}
} catch (Exception e) {
e.getMessage();
}
}
}发布于 2015-12-20 22:14:26
清单文件中manifest标签下的写入权限
<uses-permission android:name="android.permission.READ_CALL_LOG" />https://stackoverflow.com/questions/34381815
复制相似问题