我怎样才能在Android的读取收件箱未读短信编程? [英] How can I read unread sms from inbox in android programatically?
问题描述
您好,我是新的Android应用程序的开发,我已经开发了Android的一个简单的应用程序。在我的应用程序必须添加一个新功能。
我想从android的收件箱读取短信。我已经搜索并应用C $ CS,但没有用一些$,我没有得到的结果。继code是我的第一个活动code。它会执行并转到索引页,并且工作正常。在这种情况下,我想要做从收件箱中读未读短信。在那里我想写code和哪些类型的code我想写....请给我的答案很清楚为什么,因为是一个非常新的Android版。
所以,请帮助我。先谢谢了。
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屋!