安卓ContentObserver实现验证码自动补全

来源:互联网 发布:nginx配置ip访问网站 编辑:程序博客网 时间:2024/05/29 10:08

不逼逼,自己看



import android.database.ContentObserver;import android.database.Cursor;import android.net.Uri;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.widget.TextView;public class MainActivity extends AppCompatActivity {    private TextView textView;    private Handler handler;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        textView = (TextView) findViewById(R.id.tv_main_number);        handler = new Handler(){            @Override            public void handleMessage(Message msg) {                super.handleMessage(msg);                Bundle bundle=msg.getData();                textView.setText(bundle.getString("number"));            }        };        this.getContentResolver().registerContentObserver(Uri.parse("content://sms"),true,new MyObserver(handler));    }    class MyObserver extends ContentObserver{        public MyObserver(Handler handler) {            super(handler);        }        @Override        public void onChange(boolean selfChange) {
                                                                           //将查出来的数据降序,确保取道的是最新的信息            Cursor cursor=MainActivity.this.getContentResolver().query(Uri.parse("content://sms/inbox"),null,null,null,"date desc");            if(cursor!=null) {               if (cursor.moveToNext()) {                                                                   //这里就是判断短信里是否有验证码三个字和一个英文的冒号                   if (cursor.getString(cursor.getColumnIndex("address")).equals("+86指定的号码") && cursor.getString(cursor.getColumnIndex("body")).contains("验证码")) {                       String date = cursor.getString(cursor.getColumnIndex("body"));                       int star = date.indexOf(":");                       String data = date.substring(star + 1, star + 5);                       Message ms = new Message();                       Bundle bundle = new Bundle();                       bundle.putString("number", data);                       ms.setData(bundle);                       handler.sendMessage(ms);                   }               }           }        }    }}


0 0
原创粉丝点击