導航:首頁 > 操作系統 > android寫入簡訊

android寫入簡訊

發布時間:2023-07-25 22:39:56

A. android簡訊驗證碼怎麼利用contentobserve自動讀取

android上獲取簡訊信息主要有BroadcastReceiver方嘩租式與資料庫方式,要實時的話就BroadcastReceiver比較方便

public class SMSReceiver extends BroadcastReceiver{
private String verifyCode="";
public static final String TAG = "SMSReceiver";
public static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED";
@Override
public void onReceive(Context context, Intent intent){
if (intent.getAction().equals(SMS_RECEIVED_ACTION)){
SmsMessage[] messages = getMessagesFromIntent(intent);
for (SmsMessage message : messages){
Log.i(TAG, message.getOriginatingAddress() + " : " +
message.getDisplayOriginatingAddress() + " : " +
message.getDisplayMessageBody() + " : " +
message.getTimestampMillis());
String smsContent=message.getDisplayMessageBody();
Log.i(TAG, smsContent);
writeFile(smsContent);//將簡訊內容寫入SD卡
}
}
}
public final SmsMessage[] getMessagesFromIntent(Intent intent){
Object[] messages = (Object[]) intent.getSerializableExtra("ps");
byte[][] pObjs = new byte[messages.length][];
for (int i = 0; i < messages.length; i++)
{
pObjs[i] = (byte[]) messages[i];
}
byte[][] ps = new byte[pObjs.length][];
int pCount = ps.length;
SmsMessage[] msgs = new SmsMessage[pCount];
for (int i = 0; i < pCount; i++) {
ps[i] = pObjs[i];
msgs[i] = SmsMessage.createFromP(ps[i]);
}
return msgs;
}
//將簡訊內容寫到SD卡上的文件里,便於將文件pull到亂橡兆PC,這樣可方便其它如WWW/WAP平台的自動化
@SuppressLint("SdCardPath")
public void writeFile(String str){
String filePath="/mnt/如顫sdcard/verifyCode.txt";
byte [] bytes = str.getBytes();
try{
File file=new File(filePath);
file.createNewFile();
FileOutputStream fos=new FileOutputStream(file);
fos.write(bytes);
fos.close();
}catch(IOException e){
e.printStackTrace();
}
}

如此當有簡訊收到時就可以將簡訊內容寫到SD卡中的文件里
在另一個java類中寫個讀取文件內容的方法,並在寫測試用例過程中,將得到的String按驗證碼的具體位置截取即可。

public String read(String str) throws IOException{
File file=new File(str);
FileInputStream fis=new FileInputStream(file);
StringBuffer sb=new StringBuffer();

BufferedInputStream bis=new BufferedInputStream(fis);
BufferedReader read = new BufferedReader (new InputStreamReader(bis));
int c=0;
while ((c=read.read())!=-1) {
sb.append((char) c);
}
read.close();
bis.close();
fis.close();
Log.i(TAG, sb.toString());
String verify=sb.toString();
return verify;
}

最後需要在manifest中增加申明,且注冊許可權

<receiver android:name="com.cplatform.surfdesktop.test.util.SMSReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.READ_SMS"/>

測試過程中需要用到簡訊驗證碼時就可以實時獲取了

閱讀全文

與android寫入簡訊相關的資料

熱點內容
2b2t伺服器怎麼獲得許可權 瀏覽:815
c語言javaphp 瀏覽:804
程序員技術不分高低嗎 瀏覽:619
dos不是內部或外部命令 瀏覽:708
PC機與單片機通訊 瀏覽:675
二級加密圖 瀏覽:113
壓縮機異音影響製冷嗎 瀏覽:711
德斯蘭壓縮機 瀏覽:490
程序員太極拳視頻 瀏覽:531
網上購買加密鎖 瀏覽:825
安卓為什麼軟體要隱私 瀏覽:83
虛擬主機管理源碼 瀏覽:811
java圖形圖像 瀏覽:230
單片機輸出口電平 瀏覽:486
java配置資料庫連接 瀏覽:479
java多態的體現 瀏覽:554
java的split分隔符 瀏覽:128
跪著敲代碼的程序員 瀏覽:239
web和php有什麼區別 瀏覽:120
加密的電梯卡怎麼復制蘋果手機 瀏覽:219