addjavascriptinterface sms (1)


Send SMS message in Android HybridApp HTML5

Another useful snippet HTML5 hybrid app for Android, using the method addJavascriptInterface to send sms:

// sms permission in your manifest file of Android project

    
    ...


// start code
@SuppressLint({"SetJavaScriptEnabled","JavascriptInterface"})
public class MainActivity extends Activity {
public WebView webView;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main); // source activity_main.xml
webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new WebAppInterface(this), "Android");
webView.setWebViewClient(new WebViewClient());
// important set Web Chrome Client
webView.setWebChromeClient(new WebChromeClient());
webView.loadUrl(url); //local or remote
}
// final class for save and write file in external storage
final class WebAppInterface {
        Context mContext;

        /** Instantiate the interface and set the context */
        WebAppInterface(Context c) {
            mContext = c;
        }
        /**
            Built-in SMS application
        */
        public void sendBSMS(String contentsms, String tag) {
            try {
               Intent sendIntent = new Intent(Intent.ACTION_VIEW);
	       sendIntent.putExtra("sms_body", contentsms); 
	       sendIntent.setType("vnd.android-dir/mms-sms");
	       startActivity(sendIntent);
            }
            catch (IOException e) {
                Log.e(tag, "Action failed: " + e.toString());
            }
        }
        /**
         *Send with SmsManager API
         */
        public void sendSMSM(String phoneNo, String contentsms, String tag) {
            try {
               SmsManager smsManager = SmsManager.getDefault();
	       smsManager.sendTextMessage(phoneNo, null, contentsms, null, null);
            }
            catch (IOException e) {
                Log.e(tag, "SMS failed: " + e.toString());
            }
        }
    }

}
// Now open html file in www folder





 *
optional *