2012-07-09 85 views
1

嗨,我是新的android应用程序开发,并且我在android中开发了一个简单的应用程序。在我的应用程序中,我必须添加一个新功能。如何在android中以编程方式从收件箱读取未读短信?

我想从android中的收件箱中读取短信。我已经搜索并应用了一些代码,但没有用,我没有得到结果。以下代码是我的第一个活动代码。它会执行并进入索引页并正常工作。在这种情况下,我想从收件箱中读取未读短信。我想写代码的地方,我想写什么类型的代码....请非常清楚地给我答案,为什么,因为我是一个非常新的android。

所以请帮助我。提前致谢。

代码:

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"); 

    } 
} 
+0

提高你的accepte率 – 2012-07-09 09:38:06

+3

@SamirMangroliya:真的吗? ](http://meta.stackexchange.com/questions/23321/is-it-closed-to-comment-on-peoples-accept-rate) – Bobby 2012-07-09 09:39:27

+0

我不明白......你说什么? – cheliyan 2012-07-09 09:41:18

回答

0

如果要扩展DroidGap,没必要做的setContentView中的onCreate,DroidGap会默认显示web视图。


创建一类说具有方法来读取未读的SMS和添加ReadSMS类对象作为javascriptInterfcae到droidGap web视图,如下ReadSMS:

Class ReadSMS{ 

public ReadSMS(){ 
} 

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

} 


在SMSActivity的onCreate添加:

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


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

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

要知道,如何阅读未读的短信,请参阅:http://stackoverflow.com/questions/848728/how-can-i-read-sms-messages-from-the-inbox-programmatically-in-android – 2012-07-09 10:01:15

4

它真的有用...保存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(); 
} 
相关问题