gpt4 book ai didi

android - 如何过滤android中内容解析器的结果?

转载 作者:IT老高 更新时间:2023-10-28 21:42:39 24 4
gpt4 key购买 nike

我想获取用户联系人,然后附加某种正则表达式并将它们附加到 ListView 中。我目前可以通过

获取所有联系人

getContentResolver().query(People.CONTENT_URI, null, null, null, null);

然后将它们传递给扩展 SimpleCursorAdapter 的自定义类。

所以我想知道如何只获取与正则表达式匹配的联系人,而不是所有用户联系人。

最佳答案

代替

getContentResolver().query(People.CONTENT_URI, null, null, null, null); 

你应该使用类似的东西

final ContentResolver resolver = getContentResolver();
final String[] projection = { People._ID, People.NAME, People.NUMBER };
final String sa1 = "%A%"; // contains an "A"
cursor = resolver.query(People.CONTENT_URI, projection, People.NAME + " LIKE ?",
new String[] { sa1 }, null);

这使用参数化请求(使用 ?)并将实际值作为不同的参数提供,这样可以避免串联并主要在您请求过滤器时防止 SQL 注入(inject)来自用户。例如,如果您正在使用

cursor = resolver.query(People.CONTENT_URI, projection,
People.NAME + " = '" + name + "'",
new String[] { sa1 }, null);

想象一下

name =  "Donald Duck' OR name = 'Mickey Mouse") // notice the " and '

你正在连接字符串。

关于android - 如何过滤android中内容解析器的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2156363/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com