【问题标题】:Java Android - Filter incoming text messagesJava Android - 过滤传入的短信
【发布时间】:2011-03-13 21:05:50
【问题描述】:

我正在寻找一种方式:

  1. 让我的 Android 应用程序在收到短信时收到警报/提示。
  2. 从收件箱中获取最新消息。我想从那里扫描/过滤它,但我确信我可以解决这部分问题。

有人能建议从哪里开始吗? 收件箱更改大小或收到新短信时会触发哪个警报? 以及如何从收件箱中检索邮件? 需要授予哪些权限?

【问题讨论】:

  • 了解如何监听收到的短信:

标签: java android permissions sms inbox


【解决方案1】:

我的问题的答案大多在这里找到: http://www.kaloer.com/incoming-sms-messages

希望这可以帮助其他人在未来寻找相同的答案。

【讨论】:

  • 以上链接无效。
【解决方案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();

   }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多