我怎样才能在Android的读取收件箱未读短信编程? [英] How can I read unread sms from inbox in android programatically?

查看:132
本文介绍了我怎样才能在Android的读取收件箱未读短信编程?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,我是新的Andr​​oid应用程序的开发,我已经开发了Android的一个简单的应用程序。在我的应用程序必须添加一个新功能。

我想从android的收件箱读取短信。我已经搜索并应用C​​ $ CS,但没有用一些$,我没有得到的结果。继code是我的第一个活动code。它会执行并转到索引页,并且工作正常。在这种情况下,我想要做从收件箱中读未读短信。在那里我想写code和哪些类型的code我想写....请给我的答案很清楚为什么,因为是一个非常新的Andr​​oid版。

所以,请帮助我。先谢谢了。

code:

 进口org.apache.cordova *。
 进口android.os.Bundle;
 公共类SMSActivity扩展DroidGap
 {
     / **第一次创建活动时调用。 * /
    @覆盖
    公共无效的onCreate(包savedInstanceState)
    {
       super.onCreate(savedInstanceState);
       的setContentView(R.layout.main);
       super.setIntegerProperty(启动画面,R.drawable.fg_logo);
       super.loadUrl(文件:///android_asset/www/index.html);

    }
}
 

解决方案

它真的有用...保存Message.java

 包mzsay.com.provider;
进口android.content.ContentResolver;
进口android.content.ContentValues​​;
进口android.database.Cursor;
进口android.net.Uri;
公共类消息{



最后乌里SMS_INBOX = Uri.parse(内容://短信/收件箱);
@燮pressWarnings(未使用)
私人ContentResolver的解析;

公共消息(ContentResolver的ConResolver){
    解析= ConResolver;
}

公共字符串的getMessage(INT BATAS){
      光标CUR = resolver.query(SMS_INBOX,NULL,NULL,NULL,NULL);
      字符串短信=消息>> \ N的;
      INT hitung = 0;
      而(cur.moveToNext()){
          短信+ =从:+ cur.getString(2)+:+ cur.getString(11)+\ N的;
          如果(hitung == BATAS)
              打破;
          hitung ++;
      }
      回短信;
}

公众诠释getMessageCountUnread(){
    光标C = resolver.query(SMS_INBOX,空,读= 0,NULL,NULL);
    INT unreadMessagesCount = c.getCount();
    c.deactivate();
    返回unreadMessagesCount;
}

公共字符串getMessageAll(){
      光标CUR = resolver.query(SMS_INBOX,NULL,NULL,NULL,NULL);
      字符串短信=消息>> \ N的;
      而(cur.moveToNext()){
          短信+ =从:+ cur.getString(2)+:+ cur.getString(11)+\ N的;
      }
      回短信;
}

公共字符串getMessageUnread(){
    光标CUR = resolver.query(SMS_INBOX,NULL,NULL,NULL,NULL);
      字符串短信=消息>> \ N的;
      INT hitung = 0;
      而(cur.moveToNext()){
          短信+ =从:+ cur.getString(2)+:+ cur.getString(11)+\ N的;
          如果(hitung == getMessageCountUnread())
              打破;
          hitung ++;
      }
      回短信;
}

公共无效setMessageStatusRead(){
    ContentValues​​值=新ContentValues​​();
    values​​.put(读,真正的);
    resolver.update(SMS_INBOX,价值观,_id =+ SmsMessageId,NULL);
}

}
 

和比这种方法在你的主要活动通话

 公共同步串的getMessage(INT BATAS){
    消息ambilpesan =新的Message(context.getContentResolver());
            //这个返回的所有未读的收件箱
    返回ambilpesan.getMessageUnread();
}
 

Hi, I am new for android application development, and I have developed one simple application in android. In my application I have to add a new feature.

I want to read sms messages from the inbox in android. I have searched and applied some codes but no use, I don't get the result. Following code is my first activity code. It will execute and go to the index page and is working properly. In this case what I want to do for read unread sms from inbox. Where I want to write code and which types of code I want to write....please give me the answer very clearly why because am a very new for android.

So please help me. Thanks in advance.

Code:

 import org.apache.cordova.*;  
 import android.os.Bundle;
 public class SMSActivity extends DroidGap 
 {
     /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
       super.setIntegerProperty("splashscreen", R.drawable.fg_logo);
       super.loadUrl("file:///android_asset/www/index.html");

    }
}

解决方案

Its Really Work... save with Message.java

package mzsay.com.provider;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
public class Message {



final Uri SMS_INBOX = Uri.parse("content://sms/inbox");
@SuppressWarnings("unused")
private ContentResolver resolver;

public Message(ContentResolver ConResolver){
    resolver = ConResolver;
}

public String getMessage(int batas) {
      Cursor cur = resolver.query(SMS_INBOX, null, null, null,null);
      String sms = "Message >> \n";
      int hitung = 0;
      while (cur.moveToNext()) {
          sms += "From :" + cur.getString(2) + " : " + cur.getString(11)+"\n";
          if(hitung == batas)
              break;
          hitung++;
      }
      return sms;
}

public int getMessageCountUnread(){
    Cursor c = resolver.query(SMS_INBOX, null, "read = 0", null, null);
    int unreadMessagesCount = c.getCount();
    c.deactivate();
    return unreadMessagesCount;
}

public String getMessageAll(){
      Cursor cur = resolver.query(SMS_INBOX, null, null, null,null);
      String sms = "Message >> \n";
      while (cur.moveToNext()) {
          sms += "From :" + cur.getString(2) + " : " + cur.getString(11)+"\n";
      }
      return sms;
}

public String getMessageUnread() {
    Cursor cur = resolver.query(SMS_INBOX, null, null, null,null);
      String sms = "Message >> \n";
      int hitung = 0;
      while (cur.moveToNext()) {
          sms += "From :" + cur.getString(2) + " : " + cur.getString(11)+"\n";
          if(hitung == getMessageCountUnread())
              break;
          hitung++;
      }
      return sms;
}

public void setMessageStatusRead() {
    ContentValues values = new ContentValues();
    values.put("read",true);
    resolver.update(SMS_INBOX,values, "_id="+SmsMessageId, null);
}

}

And than call with this method in your Main Activity

public synchronized String getMessage(int batas) {
    Message ambilpesan = new Message(context.getContentResolver());
            //this a return of All unread from your Inbox
    return ambilpesan.getMessageUnread();
}

这篇关于我怎样才能在Android的读取收件箱未读短信编程?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆