【问题标题】:Perform Text analysis on Incoming messages对传入消息执行文本分析
【发布时间】:2016-12-03 07:12:13
【问题描述】:

我正在创建一个 android 应用程序,它将通过短信检测人的情绪,它将搜索描述情绪的 emo 和关键字,我已经完成了其他部分,但现在我来处理消息了, 我已经做了一个条件,我的应用程序会在发送 10 条消息后检查人的情绪并搜索关键字并设置他/她的情绪。

import android.content.Context;
import android.database.Cursor;
import android.net.Uri;
import android.telephony.*;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;



public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        Uri uriSMSURI = Uri.parse("content://sms/sent");
        Cursor cur = getContentResolver().query(uriSMSURI, new String[]{"_id", "thread_id", "address", "person", "date", "body"}, null, null, null);
        if (cur.getCount() > 0) {
            while (cur.moveToNext()) {
                String smsBody = cur.getString(5);
                Log.v("body", smsBody);

                if (smsBody.contains(":(")) {
                    Toast.makeText(getApplicationContext(), "found sad smiley in ur texts", Toast.LENGTH_LONG).show();
                }
                else{
                    Toast.makeText(getApplicationContext(),"didnt found what u are looking for",Toast.LENGTH_LONG).show();
                }
            }
        }
        super.onCreate(savedInstanceState);
    }
}

现在我的代码正在阅读消息并找到一个关键字,但我需要两件事的帮助:

  1. 如何获取最新消息。
  2. 对消息应用自定义字典。

【问题讨论】:

    标签: android message


    【解决方案1】:

    使用以下内容阅读收件箱

      Uri message = Uri.parse("content://sms/inbox");
    
    int j = 0;
      Cursor c =this.getContentResoulver().query(message, null, null, null, null);
    
      int totalSMS = c.getCount();
    if(totalSms >10)
    j = 10;
    else
    j= totalSms;
    
     if (c.moveToFirst()) {
        for (int i = 0; i < j;i++) {
        String messageBody = c.getString(c.getColumnIndex   ("body"));
     c.moveToNext();
           }
    }
    

    要拆分字符串,请使用以下和搜索关键字

    String[] splitted_message = stringObject.split("");
    

    这个数组包含你可以用你的关键字检查的词

    别忘了添加权限

           <uses-permission android:name="android.permission.READ_SMS"/>
    

    希望对你有帮助!

    【讨论】:

    • 先生,我得到了您的答案,还有一件事,在 splitted_message 中,而不是 stringobject ,我必须使用包含消息的字符串? #谢谢
    猜你喜欢
    • 2015-08-31
    • 1970-01-01
    • 1970-01-01
    • 2019-11-15
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多