歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android處理網頁的短信鏈接

Android處理網頁的短信鏈接

日期:2017/3/1 9:55:21   编辑:Linux編程

最近遇到了很多網頁,尤其是通過短信找回密碼的網站,其規范格式為106659999,但是各個系統對這個格式支持也不是很統一的,我先後在ios和windows Phone上做了測試,在ios上會跳轉到短信程序,但是號碼和短信內容都是無法獲取的,而Windows Phone上沒有任何響應。在Android上,不同的浏覽器處理的也是不一樣的。有些是將這些(sms:106659999?body=修改密碼)作為號碼,系統浏覽器的處理只是能顯示出號碼,不能顯示出短信內容。

這裡我是這樣實現同時顯示號碼和短信內容的,請參考一下代碼:

package ps.androidyue.demo.send_sms;
 
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
 
public class SendSMSDemoActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//短信超鏈接的內容,包含號碼和短信內容
String s = "sms:106901956100041??body=wmm%E6%96%B0%E5%AF%86%E7%A0%81";
//獲取短信號碼,包含"sms:"
String address = s.contains("?") ? s.substring(0, s.indexOf("?")) : s;
//獲取短信內容,如果沒有則為""
String body = s.replaceAll(address, "");
body = body.contains("=") ? body.substring(body.indexOf("=") + 1) : body;
//對於中文內容進行Uri解碼
body = Uri.decode(body);
Uri smsToUri = Uri.parse(address);// 聯系人地址
Intent mIntent = new Intent(android.content.Intent.ACTION_SENDTO,smsToUri);
//設置短信的內容
mIntent.putExtra("sms_body", body);
startActivity(mIntent);
}
}

對於有的鏈接,可能是不標准的,比如上述代碼中有的會出現兩個”?”,不過這個也能處理。當然根據自己的情況實現自己的處理邏輯。

更多Android相關信息見Android 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=11

Copyright © Linux教程網 All Rights Reserved