java - Cordova 插件 CallLog 找不到符号

标签 java android cordova cordova-plugins

我正在尝试制作一个 cordova 插件以在 Android 中获取电话历史记录。 我已经按照本教程进行操作以获取插件的 Java 代码: http://www.androidhub4you.com/2013/09/android-call-history-example-how-to-get.html?showComment=1402049673596#c4881780435926453105

我的java文件是:

import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CallbackContext;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.Date;
import android.app.Activity; 
import android.database.Cursor; 
import android.os.Bundle; 
import android.provider.CallLog; 
import android.content.ContentResolver;
public class CallLogList extends CordovaPlugin {

@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
    if (action.equals("callLog")) {
        String message = args.getString(0);
        this.getCallDetails(message, callbackContext);
        return true;
    }
    return false;
}
private void getCallDetails(String message, CallbackContext callbackContext) {
    if (message != null && message.length() > 0) {

        StringBuffer sb = new StringBuffer(); 

        Cursor managedCursor = getContentResolver().query(CallLog.Calls.CONTENT_URI, null, null, null, null); 
        managedCursor.close(); 
    }
    else {
        callbackContext.error("Expected one non-empty string argument.");
    }
}
}

我总是收到以下错误:

[javac] Compiling 4 source files to /Users/xxx/Projects/cordova/platforms/android/ant-build/classes
[javac] /Users/xxx/Projects/cordova/platforms/android/src/it/prova/calllog/CallLogList.java:41: cannot find symbol
[javac] symbol  : method getContentResolver()
[javac] location: class it.prova.calllog.CallLogList
[javac]             Cursor managedCursor = getContentResolver().query(CallLog.Calls.CONTENT_URI, null, null, null, null);
[javac]                                    ^
[javac] 1 error

我想我缺少一些导入,因为我在一个原生 Android 应用程序中运行相同的代码并且它有效。

谢谢

最佳答案

我找到了解决办法!

我必须添加:this.cordova.getActivity() 以创建一个新的 Cursor。

Cursor managedCursor = this.cordova.getActivity().getContentResolver().query(CallLog.Calls.CONTENT_URI, null, null, null, null); 

关于java - Cordova 插件 CallLog 找不到符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24083582/

相关文章:

Java NIO 与非 NIO 性能对比

android - 使用 Fragments 为 Android 中的每个选项卡单独返回堆栈

java - float 数学类的替代品

javascript - notification.alert 中的 Html 标签 Phonegap

javascript - 使用phonegap在android中图像上传时间EOF发生异常?

java - 编译错误 "Failed while installing Dynamic Web Module 2.5"

java : Convert formatted xml file to one line string

java - 并发线程访问单例

android - kotlin 抑制警告已弃用 Android

windows - cordova mac 在 safari 中打开 URL