获取通话记录失败

08-02 16:16:05.448  2309  2978 D HeadsetStateMachine: handleMessage: E msg.what=101
08-02 16:16:05.449  2309  2978 D HeadsetStateMachine: processMsg: Connected
08-02 16:16:05.450  2309  2978 D HeadsetStateMachine: Connected: currentDevice=1C:52:16:03:02:5A, msg=STACK_EVENT: EVENT_TYPE_DIAL_CALL[7], valInt=0, valInt2=0, valString=null, valObject=null, device=1C:52:16:03:02:5A
08-02 16:16:05.485  3651  3674 E DatabaseUtils: Writing exception to parcel
08-02 16:16:05.485  3651  3674 E DatabaseUtils: java.lang.IllegalArgumentException: Invalid token LIMIT
08-02 16:16:05.485  3651  3674 E DatabaseUtils: at android.database.sqlite.SQLiteQueryBuilder.enforceStrictToken(SQLiteQueryBuilder.java:824)
08-02 16:16:05.485  3651  3674 E DatabaseUtils: at android.database.sqlite.SQLiteQueryBuilder.lambda$W2yQ6UjYGqGIu6HEomKgdgvGNKI(Unknown Source:0)
08-02 16:16:05.485  3651  3674 E DatabaseUtils: at android.database.sqlite.-$$Lambda$SQLiteQueryBuilder$W2yQ6UjYGqGIu6HEomKgdgvGNKI.accept(Unknown Source:4)
08-02 16:16:05.485  3651  3674 E DatabaseUtils: at android.database.sqlite.SQLiteTokenizer.tokenize(SQLiteTokenizer.java:108)
08-02 16:16:05.485  3651  3674 E DatabaseUtils: at android.database.sqlite.SQLiteQueryBuilder.enforceStrictGrammar(SQLiteQueryBuilder.java:794)
08-02 16:16:05.485  3651  3674 E DatabaseUtils: at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:557)
08-02 16:16:05.485  3651  3674 E DatabaseUtils: at android.database.sqlite.SQLiteQueryBuilder.query(SQLiteQueryBuilder.java:502)
08-02 16:16:05.485  3651  3674 E DatabaseUtils: at com.android.providers.contacts.CallLogProvider.queryInternal(CallLogProvider.java:378)
08-02 16:16:05.485  3651  3674 E DatabaseUtils: at com.android.providers.contacts.CallLogProvider.query(CallLogProvider.java:305)
08-02 16:16:05.485  3651  3674 E DatabaseUtils: at android.content.ContentProvider.query(ContentProvider.java:1379)
08-02 16:16:05.485  3651  3674 E DatabaseUtils: at android.content.ContentProvider.query(ContentProvider.java:1475)
08-02 16:16:05.485  3651  3674 E DatabaseUtils: at android.content.ContentProvider$Transport.query(ContentProvider.java:278)
08-02 16:16:05.485  3651  3674 E DatabaseUtils: at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:106)
08-02 16:16:05.485  3651  3674 E DatabaseUtils: at android.os.Binder.execTransactInternal(Binder.java:1159)
08-02 16:16:05.485  3651  3674 E DatabaseUtils: at android.os.Binder.execTransact(Binder.java:1123)
08-02 16:16:05.487  2309  2978 E BluetoothAtPhonebook: Exception while querying last dialled number
08-02 16:16:05.487  2309  2978 E BluetoothAtPhonebook: java.lang.IllegalArgumentException: Invalid token LIMIT
08-02 16:16:05.487  2309  2978 E BluetoothAtPhonebook: at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:172)
08-02 16:16:05.487  2309  2978 E BluetoothAtPhonebook: at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:142)
08-02 16:16:05.487  2309  2978 E BluetoothAtPhonebook: at android.content.ContentProviderProxy.query(ContentProviderNative.java:472)
08-02 16:16:05.487  2309  2978 E BluetoothAtPhonebook: at android.content.ContentResolver.query(ContentResolver.java:1185)
08-02 16:16:05.487  2309  2978 E BluetoothAtPhonebook: at android.content.ContentResolver.query(ContentResolver.java:1116)
08-02 16:16:05.487  2309  2978 E BluetoothAtPhonebook: at android.content.ContentResolver.query(ContentResolver.java:1072)
08-02 16:16:05.487  2309  2978 E BluetoothAtPhonebook: at com.android.bluetooth.hfp.AtPhonebook.getLastDialledNumber(AtPhonebook.java:141)
08-02 16:16:05.487  2309  2978 E BluetoothAtPhonebook: at com.android.bluetooth.hfp.HeadsetStateMachine.processDialCall(HeadsetStateMachine.java:1981)
08-02 16:16:05.487  2309  2978 E BluetoothAtPhonebook: at com.android.bluetooth.hfp.HeadsetStateMachine.access$4000(HeadsetStateMachine.java:86)
08-02 16:16:05.487  2309  2978 E BluetoothAtPhonebook: at com.android.bluetooth.hfp.HeadsetStateMachine$ConnectedBase.processMessage(HeadsetStateMachine.java:1245)
08-02 16:16:05.487  2309  2978 E BluetoothAtPhonebook: at com.android.bluetooth.hfp.HeadsetStateMachine$Connected.processMessage(HeadsetStateMachine.java:1452)
08-02 16:16:05.487  2309  2978 E BluetoothAtPhonebook: at com.android.internal.util.StateMachine$SmHandler.processMsg(StateMachine.java:992)
08-02 16:16:05.487  2309  2978 E BluetoothAtPhonebook: at com.android.internal.util.StateMachine$SmHandler.handleMessage(StateMachine.java:809)
08-02 16:16:05.487  2309  2978 E BluetoothAtPhonebook: at android.os.Handler.dispatchMessage(Handler.java:106)
08-02 16:16:05.487  2309  2978 E BluetoothAtPhonebook: at android.os.Looper.loop(Looper.java:223)
08-02 16:16:05.487  2309  2978 E BluetoothAtPhonebook: at android.os.HandlerThread.run(HandlerThread.java:67)
08-02 16:16:05.488  2309  2978 D HeadsetStateMachine: dialNumber: null
08-02 16:16:05.488  2309  2978 W HeadsetStateMachine: processDialCall, last dial number null or empty 

修改方案:

--- a/vendor/qcom/opensource/commonsys/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/AtPhonebook.java
+++ b/vendor/qcom/opensource/commonsys/packages/apps/Bluetooth/src/com/android/bluetooth/hfp/AtPhonebook.java
@@ -22,6 +22,9 @@ import android.content.Context;
 import android.content.Intent;
 import android.database.Cursor;
 import android.net.Uri;
+//<!--jicong.wang modify for bug 25385
+import android.provider.CallLog;
+//jicong.wang modify for bug 25385-->
 import android.provider.CallLog.Calls;
 import android.provider.ContactsContract.CommonDataKinds;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
@@ -137,12 +140,21 @@ public class AtPhonebook {
     /** Returns the last dialled number, or null if no numbers have been called */
     public String getLastDialledNumber() {
         String[] projection = {Calls.NUMBER};
+        //<!--jicong.wang modify for bug 25385
+        Uri uri = Calls.CONTENT_URI.buildUpon().appendQueryParameter(Calls.LIMIT_PARAM_KEY,"1").build();
+        //jicong.wang modify for bug 25385 -->
         try {
-            Cursor cursor = mContentResolver.query(Calls.CONTENT_URI, projection,
+            //<!--jicong.wang modify for bug 25385
+            /*Cursor cursor = mContentResolver.query(Calls.CONTENT_URI, projection,
                     Calls.TYPE + " = " + Calls.OUTGOING_TYPE + " OR " + Calls.TYPE +
                     " = " + OUTGOING_IMS_TYPE + " OR " + Calls.TYPE + " = " +
                     OUTGOING_WIFI_TYPE, null, Calls.DEFAULT_SORT_ORDER +
-                    " LIMIT 1");
+                    " LIMIT 1");*/
+            Cursor cursor = mContentResolver.query(uri, projection,
+                    Calls.TYPE + " = " + Calls.OUTGOING_TYPE + " OR " + Calls.TYPE +
+                            " = " + OUTGOING_IMS_TYPE + " OR " + Calls.TYPE + " = " +
+                            OUTGOING_WIFI_TYPE, null,Calls.DEFAULT_SORT_ORDER);
+            //jicong.wang modify for bug 25385 -->
             log("Queried the last dialled number for CS, IMS, WIFI calls");
             if (cursor == null) {
                 Log.w(TAG, "getLastDialledNumber, cursor is null");
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值