【问题标题】:Filter message body and i get force close过滤消息正文,我强制关闭
【发布时间】:2012-06-10 17:15:35
【问题描述】:

我想过滤带有前缀“kmsmks”的消息,编译成功但我强制关闭:

...
        String firstword = "kmsmks";

        while  (cursor.moveToNext()) 
        {   String address = cursor.getString(1);
            String body = cursor.getString(3);

            String firstmessageword = body.substring(0,7);

         if (firstword.equals(firstmessageword))

            {
                   System.out.println("======> Mobile number => "+address);
                   System.out.println("=====> SMS Text => "+body);

                   sms.add("Address=> "+address+"\n SMS => "+body);   
               }

        }
        return sms;
    }
…

原代码:http://www.technotalkative.com/android-fetch-inbox-sms/

【问题讨论】:

  • 你能发布错误的堆栈跟踪吗?
  • 我查看了您的原始代码,您知道,您不应该在光标上调用cur.getString(1)。相反,您应该在运行时使用cur.getString(cur.getColumnIndex("column_name")); 确定列索引。如果您决定更改数据库结构,这样做将确保您的代码不会中断。
  • @SagarHatekar:没有错误,但强制关闭:(
  • @AlexLockwood :哦,那个代码没有优化?对不起,我是新手..
  • (1) 并不是说​​它没有优化……这只是不好的编码习惯,会让你的生活更加困难。 (2) 强制关闭肯定是一个错误...检查您的 logcat 并发布错误消息。

标签: java android string sms prefix


【解决方案1】:

确保您已在清单中添加android.permission.READ_SMS

【讨论】:

  • 感谢 4 个答案.. 但如果我删除 "String firstword = "kmsmks";"和“如果(firstword.equals(firstmessageword))”,但我想要过滤带有前缀的消息..(抱歉英语不好)
猜你喜欢
  • 1970-01-01
  • 2013-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 2016-07-17
  • 1970-01-01
  • 2020-11-06
相关资源
最近更新 更多