这个问题通常发生在使用ContentResolver进行查询时,查询的参数中包含了非法字符。为了解决这个问题,需要对查询参数进行检查并去除非法字符。
以下是示例代码:
Dim projection() As String = Array As String("_id", "name", "phone")
Dim selection As String = "name LIKE ?"
Dim selectionArgs() As String = Array As String("John%", ";DROP TABLE contacts")
Dim sortOrder As String = "name ASC"
Try
Dim cr As ContentResolver
Dim uri As Uri
Dim cur As Cursor
cr = getContentResolver()
uri = ContactsContract.Contacts.CONTENT_URI
cur = cr.query(uri, projection, selection, selectionArgs, sortOrder)
' do something with the cursor
Finally
If cur.IsInitialized Then cur.Close
End Try
在上面的代码示例中,我们使用了一个包含非法字符(";DROP TABLE contacts")的查询参数,这会导致ContentResolver错误。要解决这个问题,我们需要对selectionArgs参数进行过滤,去除掉非法字符,例如:
Dim selectionArgs() As String = Array As String("John%")
For i = 0 To selectionArgs.Length - 1
selectionArgs(i) = selectionArgs(i).Replace(";", "").Replace("--", "")
Next
通过这样的方式,我们可以避免在查询参数中包含非法字符,进而避免ContentResolver错误。
下一篇:B4J中的错误JSON格式