我正在尝试向我的应用添加搜索视图,以便用户搜索联系人。
我关注了Jacek Milewski的教程(http://looksok.wordpress.com/2013/06/15/android-searchview-tutorial-edittext-with-phone-contacts-search-and-autosuggestion/),在大多数Android设备上,一切都很好,但在Android版本4.4.3和4.4.2上(我刚刚在未更新的Nexus 10上试过我的应用程序适用于4.4.2,不适用于4.4.3)。
对于与图片的每次接触,我都会从适配器中收到错误:
09-19 17:40:03.455 29454-29454/myapp W/SuggestionsAdapter﹕ Search suggestions cursor threw exception.
java.lang.SecurityException: com.android.providers.contacts from uid 10491 not allowed to perform READ_CONTACTS
at android.os.Parcel.readException(Parcel.java:1465)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:185)
at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:148)
at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:682)
at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1063)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:904)
at android.content.ContentResolver.openInputStream(ContentResolver.java:629)
at android.widget.SuggestionsAdapter.getDrawable(SuggestionsAdapter.java:572)
at android.widget.SuggestionsAdapter.getDrawableFromResourceValue(SuggestionsAdapter.java:543)
at android.widget.SuggestionsAdapter.getIcon1(SuggestionsAdapter.java:399)
at android.widget.SuggestionsAdapter.bindView(SuggestionsAdapter.java:345)
at android.widget.CursorAdapter.getView(CursorAdapter.java:254)
at android.widget.SuggestionsAdapter.getView(SuggestionsAdapter.java:483)
at android.widget.AbsListView.obtainView(AbsListView.java:2255)
at android.widget.ListPopupWindow$DropDownListView.obtainView(ListPopupWindow.java:1585)
at android.widget.ListView.makeAndAddView(ListView.java:1790)
at android.widget.ListView.fillDown(ListView.java:691)
at android.widget.ListView.fillGap(ListView.java:655)
at android.widget.AbsListView.trackMotionScroll(AbsListView.java:5143)
at android.widget.AbsListView$FlingRunnable.run(AbsListView.java:4254)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
at android.view.Choreographer.doCallbacks(Choreographer.java:574)
at android.view.Choreographer.doFrame(Choreographer.java:543)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5001)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
在应用程序中看起来像这样:
我制作了一个github,以便你可以自己尝试:https://github.com/slyslayer/ReadContactsError/
我认为这是4.4.3中的一个错误,但如果您对可能出现的问题有什么想法,我会全力以赴:)