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);
    }
}

对于有的链接,可能是不标准的,比如上述代码中有的会出现两个”?”,不过这个也能处理。当然根据自己的情况实现自己的处理逻辑。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/82aff304d35dbfaddd85bd1a67117283.html