Android ContentObserver實現驗證碼自動填入
在這裡跟大家分享下Android的內容監聽者 ContentObserver 內容監聽者是監聽一個指定路徑裡面的資料,當發生改變的時候會呼叫onChange方法,在這裡跟大家實現一個驗證碼的自動填寫。
佈局程式碼就一個TextView用來顯示驗證碼。
MainActivity中程式碼如下:
private TextView textView; private Handler handler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //要賦值的TextView textView = (TextView) findViewById(R.id.tv_main_number); //例項化一個handler handler = new Handler(){ //接受訊息的方法 @Override public void handleMessage(Message msg) { super.handleMessage(msg); //通過Message 獲取bundle bundle是一個放資料的 Bundle bundle=msg.getData(); //重bundle中拿出放入相對應key的value textView.setText(bundle.getString("number")); } }; //開始監聽內容 sms為所有簡訊包括髮簡訊箱,收簡訊箱,草稿箱... this.getContentResolver().registerContentObserver(Uri.parse("content://sms"),true,new MyObserver(handler)); } //自己用內部類實現CotentObserver 需要重寫構造方法 class MyObserver extends ContentObserver{ public MyObserver(Handler handler) { super(handler); } //當監聽的sms中發生了改變的時候會呼叫該方法,比如來簡訊了。 @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(":"); //在:的座標基礎上+1擷取後面四位數 String data = date.substring(star + 1, star + 5); //例項化訊息 Message ms = new Message(); //例項化箱子 Bundle bundle = new Bundle(); //放入驗證碼到箱子裡 bundle.putString("number", data); //把箱子放入訊息中 ms.setData(bundle); //傳送訊息,通過handler去更新 handler.sendMessage(ms); } } } } }
所有解釋都在程式碼註釋上,注意要增加簡訊的許可權。
今天的分享都在這裡了,根據需求可更改判斷的條件和判斷簡訊的內容。
相關推薦
Android ContentObserver實現驗證碼自動填入
在這裡跟大家分享下Android的內容監聽者 ContentObserver 內容監聽者是監聽一個指定路徑裡面的資料,當發生改變的時候會呼叫onChange方法,在這裡跟大家實現一個驗證碼的自動填寫。 佈局程式碼就一個TextView用來顯示驗證碼。 MainActiv
利用百度OCR實現驗證碼自動識別
/** * 獲取識別驗證碼 * @param imageUrl * @return */ public static String OCRVCode(String imageUrl){ String VCode = "";
android 簡訊驗證碼自動填寫的二種方法
現在開發越來越注重使用者體驗了,現今Android基本都有簡訊驗證功能,那今天就實現一個自動填寫簡訊驗證碼的小Demo,其中涉及有觀察者模式、以及使用Handler來實現UI的更新。 我們還是先了解一
Java Swing 圖形界面實現驗證碼(驗證碼可動態刷新)
string ble urn repaint xtend efault event adapt 內容 import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.To
Java實現驗證碼(上)
ins check dom 後臺 類繼承 訪問 and text 出錯 眾所周知,現在登錄註冊各種網站賬號很多都要求輸入驗證碼。設置驗證碼,毫無疑問降低了用戶體驗,但為什麽各種網站還仍然使用驗證碼呢? 很明顯,驗證碼有其特殊的作用:驗證碼是一種區分用戶是計算機還是人
PHP實現驗證碼制作
php 驗證碼 captcha.php(PHP產生驗證碼並儲存Session):<?php //開啟Session session_start(); //繪制底圖 $image = imagecreatetruecolor(100, 30);//返回資源型的值 $bgcolor =
GitLab 實現代碼自動部署(轉載自https://segmentfault.com/a/1190000011561808)
use name 無密碼登錄 row 內容 app mage 請求 XML 在當下使用 GIT 來管理代碼已經是一種非常流行的方式了。使用 GIT 可以很方便的給代碼創建分支,撤銷不需要的提交,與他人合作共同編寫代碼。 GitLab 是基於
關於豆瓣登錄,並實現驗證碼輸入的方法
保持 學習 gen index token 如果 抓取 with open comment 最近想把模擬登錄的知識學習下,所以就進行了豆瓣賬號的簡單登錄,以下是代碼: # -*- coding:utf-8 -*- ‘‘‘豆瓣模擬登陸,並實現發一條狀態‘‘‘ impor
Python使用Timer實現驗證碼功能
input thread sel def AC check cache IT imp from threading import Timer import random class Code: def __init__(self): s
PHP實現驗證碼
channels echo img -type order pos 函數返回 個數 body (1)常見的驗證碼哪些? 圖像類型、語音類型、視頻類型、短信類型等 (2)使用驗證碼的好處在哪裏? ①防止惡意的破解密碼如一些黑客為了獲取到用戶信息,通過不同的手段向服務器
Spring中整合Cage,實現驗證碼功能
ger 類型 body match exce sub pom esp rec 1.pom.xml中添加Cage依賴。 <dependency> <groupId>com.github.cage</groupId
shop--6.店鋪註冊--使用kaptcha實現驗證碼
ssa p s request ava edi eth ring formdata input 1.引入jar包 https://mvnrepository.com/中搜索com.github.penggle 找到kaptcha,將其dependency拷貝到pom.xml
Python爬蟲實例 動態ip+抓包+驗證碼自動識別
PE IT agent 也有 pass ttr timeout edi targe 最近出於某種不可描述的原因,需要爬一段數據,大概長這樣: 是一個價格走勢圖,鼠標移到上面會顯示某個時刻的價格,需要爬下來日期和價格。 第一步肯定先看源代碼,找到了這
gitlab+jenkins+tomcat實現代碼自動部署
要求 再次 返回 完成 conf 主機ip eight word-wrap class 一 搭建docker-gitlab-ce(優先部署docker,前面有docker部署文檔)環境準備:1 物理內存要大於3GB 2 Linux Centos7系統 3 需要能夠訪問外網
PHP JS CSS session實現驗證碼功能
驗證碼 ges ron oss art tex lse 個數 bcd PHP JS CSS session實現驗證碼功能 頁面<?php//校驗驗證碼if (isset($_POST["authcode"])) {session_start();
網頁登陸註冊(jsp實現)驗證碼
cte exp .com tran cti version height 一個 dog 這是一個登陸頁面,有登陸驗證和驗證碼的功能(1)生成驗證碼的servlet:import javax.imageio.ImageIO;import javax.servlet.Servl
基於SVM的python簡單實現驗證碼識別
save def lse highlight pro imp bubuko uac 如果 1. 爬取驗證碼圖片 from urllib import request def download_pics(pic_name): url = ‘http://wsbs
github webhook 實現代碼自動部署 踩坑!!
添加 sudoers lin http 必須 ebs spa 踩坑 bsp 踩坑: 1、php程序執行linux命令是以webserver的user用戶(如apache 、www……)操作的,需要在/etc/sudoers添加用戶免密碼操作權限; 2、以we
SpringMVC實現驗證碼功能
yui eat cat import inpu expires 否則 void pos 下面是一張項目結構圖,實現功能前需要先搭建好SpringMVC框架。 RandomValidateCode.java——是生成驗證碼的類 Constants.java——定義了一個常量
canvas實現驗證碼功能
code 區分大小寫 font num type move style lower 輸入 我們在做一些後臺系統登錄功能的時候,一般都會用到驗證碼,最多的就是後臺生成的驗證碼圖片返回給前端的。也可以不調用後端接口,前端使用canvas直接生成驗證碼。 由於功能過於簡單,不需要