安卓:调用真正系统默认短信应用发短信. (含解决4.4系统环聊问题, 含调低版本apk调用高版本系统api)

原创. 转载请注明出处. 



	public void sendSms() {
		Uri uriTo = Uri.parse("smsto:10001");
		String strMsg = "xxxx";
		
		try {
			// 参考资料:http://stackoverflow.com/questions/20079047/android-kitkat-4-4-hangouts-cannot-handle-sending-sms-intent
			if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {  //if (Build.VERSION.SDK_INT >= 19 ? true : false) {
				//Need to change the build to API 19
		        String defaultSmsPackageName = Telephony.Sms.getDefaultSmsPackage(this); // String defaultSmsPackageName = getDefaultSmsPackage(this);
	
		        Intent sendIntent = new Intent(Intent.ACTION_SEND, uriTo); //Uri.parse("smsto:" + Uri.encode("10001")) // 一定会被忽略
		        sendIntent.setType("text/plain");
		        sendIntent.putExtra(Intent.EXTRA_TEXT, strMsg);
	
		        if (defaultSmsPackageName != null) {
		            sendIntent.setPackage(defaultSmsPackageName);
		        }
		        startActivity(sendIntent);
		    } else {
		    	Intent sendIntent = new Intent(Intent.ACTION_VIEW, uriTo);
		        // 设置 强制使用系统默认短信应用发送短信
		        sendIntent.setPackage("com.android.mms");
		        sendIntent.putExtra("sms_body", strMsg); // Intent.EXTRA_TEXT //  intent.putExtra("address", toContact.toString());
		        startActivity(sendIntent);
		    }
		} catch (Exception e) {
	    		// 防范 系统短信应用不存在,或者无法打开.
	    		
	    		// 下面的方法只 Intent.ACTION_VIEW 和Intent.ACTION_MAIN 不能过滤掉 QQ通讯录
	    		// 且 ACTION_MAIN 不能直接进入短信编辑页面.智能打开短信应用
			try {
				Intent it = new Intent(Intent.ACTION_VIEW, uriTo); // Intent.ACTION_MAIN
	    		it.setType("vnd.android-dir/mms-sms");
	    		it.putExtra("sms_body", strMsg); 
	    		startActivity(it);
			} catch (Exception e2) {
				
			}
	    }
	}



调用此函数, 可真正实现调用系统原本的短信应用发送短信.




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值