我在Samsung Galaxy设备上遇到问题。
我的应用程序正试图通过电话长时间访问该电话。
它在大多数设备上运行良好,但三星Galaxy设备没有,任何人都知道如何解决问题?
android.database.sqlite.SQLiteException: no such column: Calls._ID (code 1): ,
while compiling: SELECT _id, number, date, duration, type FROM logs WHERE
(logs.logtype=100 OR logs.logtype=110 OR logs.logtype=900 OR logs.logtype=500 OR
logs.logtype=800 OR logs.logtype=120 OR logs.logtype=510 OR logs.logtype=1000 OR
(logs.logtype=200 AND number NOT IN (SELECT number FROM logs WHERE number LIKE
'%@%')) OR logs.logtype=300) AND ((((type != 4)) AND (logtype=100 OR logtype=500)))
ORDER BY Calls._ID DESC
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:184)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:140)
at android.content.ContentProviderProxy.query(ContentProviderNative.java:366)
at android.content.ContentResolver.query(ContentResolver.java:372)
at android.content.ContentResolver.query(ContentResolver.java:315)
at com.example.minutes.MainActivity.onCreateOptionsMenu(MainActivity.java:140)
at android.app.Activity.onCreatePanelMenu(Activity.java:2571)
at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:455)
at com.android.internal.policy.impl.PhoneWindow.invalidatePanelMenu(PhoneWindow.java:829)
at com.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java:3192)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4921)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
at dalvik.system.NativeStart.main(Native Method)
以下是我用来访问通话记录的代码
String columns[]=new String[] {
CallLog.Calls._ID,
CallLog.Calls.NUMBER,
CallLog.Calls.DATE,
CallLog.Calls.DURATION,
CallLog.Calls.TYPE};
Cursor c;
c = getContentResolver().query(Uri.parse("content://call_log/calls"),
columns, null, null, "Calls._ID DESC");
答案 0 :(得分:1)
虽然您的代码段不完整,但我假设您正在尝试从游标中获取列。即使列名称正确,您也会遇到异常。请确保两件事: 1. Cursor.getCount()> 0 2.如果满足以上条件,则移至第一个记录,即Cursor.moveToFirst();
这必须解决你的问题。
答案 1 :(得分:0)
尝试ORDER BY“_id DESC”,而不是ORDER BY Calls._ID DESC。我对套件kat 4.4.2也有同样的问题。没有在其他版本上测试过,但它应该适用于所有版本。