【问题标题】:Java Android - Filter incoming text messagesJava Android - 过滤传入的短信
【发布时间】:2011-03-13 21:05:50
【问题描述】:
我正在寻找一种方式:
- 让我的 Android 应用程序在收到短信时收到警报/提示。
- 从收件箱中获取最新消息。我想从那里扫描/过滤它,但我确信我可以解决这部分问题。
有人能建议从哪里开始吗?
收件箱更改大小或收到新短信时会触发哪个警报?
以及如何从收件箱中检索邮件?
需要授予哪些权限?
【问题讨论】:
标签:
java
android
permissions
sms
inbox
【解决方案2】:
我对这个问题的解决方案是:
public class MainActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
List<SmsData> smsList = new ArrayList<SmsData>();
Uri uri = Uri.parse("content://sms/inbox");
Cursor c= getContentResolver().query(uri, null, null ,null,null);
startManagingCursor(c);
// Read the sms data and store it in the list
if(c.moveToFirst()) {
for(int i=0; i < c.getCount(); i++) {
SmsData sms = new SmsData();
sms.setBody(c.getString(c.getColumnIndexOrThrow("body")).toString());
sms.setNumber(c.getString(c.getColumnIndexOrThrow("address")).toString());
// sms.setName(c.getString(c.getColumnIndexOrThrow("name")).toString());
smsList.add(sms);
c.moveToNext();
}
}
c.close();
// Set smsList in the ListAdapter
setListAdapter(new ListAdapter(this, smsList));
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
SmsData sms = (SmsData)getListAdapter().getItem(position);
Toast.makeText(getApplicationContext(), sms.getBody(), Toast.LENGTH_LONG).show();
}
}