歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android處理網頁的短信鏈接

最近遇到了很多網頁,尤其是通過短信找回密碼的網站,其規范格式為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