获得SMS号码在出站时间contentObserver号码、时间、SMS、contentObserver

2023-09-05 00:08:37 作者:安如她心如他梦,

这是在code,我已经试图让短信号码,当我发短信,从默认的仿真器,但它无法正常工作。 只是看看,并告诉我关于

感谢名单

 包com.SMSOberver5;
进口android.app.Activity;
进口android.database.ContentObserver;
进口android.database.Cursor;
进口android.net.Uri;
进口android.os.Bundle;
进口android.os.Handler;
进口android.widget.Toast;

公共类SMSOberver5延伸活动{
        / **第一次创建活动时调用。 * /
    处理程序处理程序= NULL;
    @覆盖
        公共无效的onCreate(包savedInstanceState)
        {
                super.onCreate(savedInstanceState);
                的setContentView(R.layout.main);
                setReceiver();
        }
     私人SMSObserver smsSentObserver =新SMSObserver(新处理器());
    私人无效setReceiver(){
        this.getContentResolver()。registerContentObserver(
                        Uri.parse(内容://短信/派),真实,smsSentObserver);
}
类SMSObserver扩展ContentObserver
{
        公共SMSObserver(处理程序处理){
        超(处理);
        }

                    @覆盖
                    公共无效的onChange(布尔selfChange)
                    {
                        尝试
                        {
                         // startManagingCursor(C);
                         super.onChange(selfChange);
                         的System.out.println(身体);
                            的System.out.println(数字);
                        光标s​​ms_sent_cursor = SMSOberver5.this.managedQuery(URI
                                .parse(内容://短信/发送),空?TYPE =,
                                新的String [] {2},NULL);
                        INT smsEntriesCount = sms_sent_cursor.getCount();
                        的String []体=新的String [smsEntriesCount]
                        的String []号=新的String [smsEntriesCount]
                        如果(sms_sent_cursor.moveToFirst())
                        {
                                的for(int i = 0; I< smsEntriesCount;我++)
                                {
                                        。身体[我] = sms_sent_cursor.getString(sms_sent_cursor.getColumnIndexOrThrow(身体))的toString();
                                        数[I] = sms_sent_cursor.getString(sms_sent_cursor.getColumnIndexOrThrow(地址))的toString()。
                                        sms_sent_cursor.moveToNext();
                                }

                                Toast.makeText(getBaseContext(),文,Toast.LENGTH_LONG).show();
                            } sms_sent_cursor.close();
                        }赶上(例外五)
                        {}

                    }
        }}
 

解决方案 mysms发送短信官方版下载 mysms发送短信app下载v6.4.8 安卓版 安粉丝手游网

请看一看这个code:http://gbandroid.google$c$c.com/svn-history/r46/trunk/MobileSpy/src/org/ddth/android/monitor/observer/AndroidSmsWatcher.java

它创建了一个ContentObserver,侦听SMS表,然后获取即将离任的短信和得到他们的一些信息。

this is the code that i have try to get sms number when i send sms from default emulator, but it not work. just check out and tell me about that

Thanx

package com.SMSOberver5;
import android.app.Activity;
import android.database.ContentObserver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.widget.Toast;

public class SMSOberver5 extends Activity {
        /** Called when the activity is first created. */
    Handler handler = null;
    @Override
        public void onCreate(Bundle savedInstanceState) 
        {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
                setReceiver();
        }
     private SMSObserver smsSentObserver = new SMSObserver(new Handler());
    private void setReceiver() {
        this.getContentResolver().registerContentObserver(
                        Uri.parse("content://sms/sent"), true, smsSentObserver);
}
class SMSObserver extends ContentObserver 
{
        public SMSObserver(Handler handler) {
        super(handler);
        }       

                    @Override
                    public void onChange(boolean selfChange) 
                    {
                        try
                        {
                         //startManagingCursor(c);
                         super.onChange(selfChange);
                         System.out.println("body");
                            System.out.println("number");
                        Cursor sms_sent_cursor = SMSOberver5.this.managedQuery(Uri
                                .parse("content://sms/sent"), null, "type=?",
                                new String[] { "2" }, null);
                        int smsEntriesCount = sms_sent_cursor.getCount();
                        String[] body = new String[smsEntriesCount];
                        String[] number = new String[smsEntriesCount];
                        if (sms_sent_cursor.moveToFirst()) 
                        {
                                for (int i = 0; i < smsEntriesCount; i++) 
                                {
                                        body[i] = sms_sent_cursor.getString(sms_sent_cursor.getColumnIndexOrThrow("body")).toString();
                                        number[i] = sms_sent_cursor.getString(sms_sent_cursor.getColumnIndexOrThrow("address")).toString();
                                        sms_sent_cursor.moveToNext();
                                }

                                Toast.makeText(getBaseContext(), "text", Toast.LENGTH_LONG).show();
                            }sms_sent_cursor.close();
                        }catch(Exception e)
                        {}

                    }
        }}

解决方案

Please take a look to this code : http://gbandroid.googlecode.com/svn-history/r46/trunk/MobileSpy/src/org/ddth/android/monitor/observer/AndroidSmsWatcher.java

It creates a ContentObserver, listens for the sms table, then gets the outgoing sms and gets the several info of them.