2016-12-03 62 views
0

我正在创建一个Android应用程序,它将通过短信检测人的情绪,它将搜索描绘情绪的emo和关键字,我已完成其他部分,但是现在我要发送消息, 我已经提出了一个条件,即我的应用程序将在发送10条消息并搜索关键字并设置其心情后检查人员情绪。通过发送消息检测人的心情

package com.example.aqib.myapplication; 

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. 如何获得最新的10条消息
  2. 获得10封邮件和搜索关键字他们

回答

0

使用以下读取收件箱

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"/> 

希望它帮助!

+0

我已经得到你的答案先生,只是一件事,在splitted_message,而不是stringobject,我必须使用包含消息的字符串? #谢谢 – bravo

+0

是的..这是字符串对象... –

+0

如果你有点你可以选择它作为正确的答案吗? –