0

我正在尝试编写我的第一个 android 应用程序,我需要在一个屏幕上显示所有唯一的 SMS 发件人。就像收件箱一样。

但是我无法在内容解析器查询中使用 group by 或 distinct,并且 stackoverflow 上的所有类似 sql-injection 的解决方法似乎都不起作用。

我错过了一个明显的方法吗?因为这似乎是一件非常基本的事情。我正在查询 SMS 数据库,因此也不能使用 rawquery(其他类似海报似乎使用过的方法)。

一些帮助将不胜感激,谢谢。

4

2 回答 2

0

只需找出 SMS 的 URL。然后使用内容解析器从该 URL 获取数据。

于 2013-08-16T19:07:11.790 回答
0

看看我是怎么做到的:

// getting sender list from messages into spinner View
    Spinner phoneListView = (Spinner) findViewById(R.id.phone_list);
    Uri uri = Uri.parse("content://sms/inbox");     
    Cursor c = getContentResolver().query(uri, new String[]{"Distinct address"}, null, null, null);
    List <String> list;
    list= new ArrayList<String>();
    list.clear();
    int msgCount=c.getCount();
    if(c.moveToFirst()) {
        for(int ii=0; ii < msgCount; ii++) {
            list.add(c.getString(c.getColumnIndexOrThrow("address")).toString());
            c.moveToNext();
        }
    }
    phoneListView.setAdapter(new ArrayAdapter<String>(BankActivity.this, android.R.layout.simple_dropdown_item_1line, list));
于 2016-02-09T15:15:13.740 回答