Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过编程方式阅读android收件箱中的未读短信?_Java_Android_Sms - Fatal编程技术网

Java 如何通过编程方式阅读android收件箱中的未读短信?

Java 如何通过编程方式阅读android收件箱中的未读短信?,java,android,sms,Java,Android,Sms,大家好,我是android应用程序开发新手,我已经在android中开发了一个简单的应用程序。在我的应用程序中,我必须添加一个新功能 我想在android中阅读收件箱中的短信。我已经搜索并应用了一些代码,但是没有用,我没有得到结果。下面的代码是我的第一个活动代码。它将执行并转到索引页,并且工作正常。在这种情况下,我想做什么从收件箱阅读未读短信。我想在哪里写代码,我想写哪种类型的代码……请非常清楚地告诉我为什么,因为我是android的新手 所以请帮帮我。提前谢谢 代码: 如果您正在扩展Droid

大家好,我是android应用程序开发新手,我已经在android中开发了一个简单的应用程序。在我的应用程序中,我必须添加一个新功能

我想在android中阅读收件箱中的短信。我已经搜索并应用了一些代码,但是没有用,我没有得到结果。下面的代码是我的第一个活动代码。它将执行并转到索引页,并且工作正常。在这种情况下,我想做什么从收件箱阅读未读短信。我想在哪里写代码,我想写哪种类型的代码……请非常清楚地告诉我为什么,因为我是android的新手

所以请帮帮我。提前谢谢

代码:


如果您正在扩展DroidGap,则无需在onCreate中执行setContentView,DroidGap将默认显示webView。
创建一个类,比如ReadSMS,它具有读取未读sms的方法,并将ReadSMS类对象作为javascriptInterfcae添加到droidGap webview,如下所示:

Class ReadSMS{

public ReadSMS(){
}

public String[] readUnreadSMS(){
return smsArray;
}

}
<script>
  $(function(){
        var smsArray[] = window.ReadUnreadSMS.readUnreadSMS();
  });
</script>

在SMSActivity的onCreate add中:

ReadSMS readSms = new ReadSMS();
appView.addJavascriptInterface(readSms , "ReadUnreadSMS");
super.loadUrl("file:///android_asset/www/index.html");

然后在Javascript中,您可以访问ReadSMS类中的readUnreadSMS(),如下所示:

Class ReadSMS{

public ReadSMS(){
}

public String[] readUnreadSMS(){
return smsArray;
}

}
<script>
  $(function(){
        var smsArray[] = window.ReadUnreadSMS.readUnreadSMS();
  });
</script>

$(函数(){
var smsArray[]=window.ReadUnreadSMS.ReadUnreadSMS();
});

如果您正在扩展DroidGap,则无需在onCreate中执行setContentView,DroidGap将默认显示webView。
创建一个类,比如ReadSMS,它具有读取未读sms的方法,并将ReadSMS类对象作为javascriptInterfcae添加到droidGap webview,如下所示:

Class ReadSMS{

public ReadSMS(){
}

public String[] readUnreadSMS(){
return smsArray;
}

}
<script>
  $(function(){
        var smsArray[] = window.ReadUnreadSMS.readUnreadSMS();
  });
</script>

在SMSActivity的onCreate add中:

ReadSMS readSms = new ReadSMS();
appView.addJavascriptInterface(readSms , "ReadUnreadSMS");
super.loadUrl("file:///android_asset/www/index.html");

然后在Javascript中,您可以访问ReadSMS类中的readUnreadSMS(),如下所示:

Class ReadSMS{

public ReadSMS(){
}

public String[] readUnreadSMS(){
return smsArray;
}

}
<script>
  $(function(){
        var smsArray[] = window.ReadUnreadSMS.readUnreadSMS();
  });
</script>

$(函数(){
var smsArray[]=window.ReadUnreadSMS.ReadUnreadSMS();
});

这真的很有效。。。使用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);
}

}
然后在主活动中使用此方法调用

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

这真的很有效。。。使用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);
}

}
然后在主活动中使用此方法调用

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

@SamirMangroliya:我不明白…你说了什么?试试这个,我已经看过了。但是我不知道如何在我的应用程序中实现。请帮助我,我看不出你的问题与你的代码有任何关联。这真是个愚蠢的问题,就像问我有四个轮子怎么能造汽车一样。@SamirMangroliya:我不明白……你说了什么?试试这个,我已经看过了。但是我不知道如何在我的应用程序中实现。请帮助我,我看不出你的问题与你的代码有任何关联。这是一个愚蠢的问题,就像问我有四个轮子怎么造车一样。要知道,如何阅读未读短信,请参考:要知道,如何阅读未读短信,请参考: