[英]How can I read unread sms from inbox in android programatically?
嗨,我是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");
}
}
它真的有用......用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();
}
如果你正在擴展DroidGap,不需要在onCreate中執行setContentView,DroidGap將默認顯示webView。
Class ReadSMS{ public ReadSMS(){ } public String[] readUnreadSMS(){ return smsArray; } }
<script>
$(function(){
var smsArray[] = window.ReadUnreadSMS.readUnreadSMS();
});
</script>
<script> $(function(){ var smsArray[] = window.ReadUnreadSMS.readUnreadSMS(); }); </script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.