Ecclesia 是一个 Android 的应用程序,该用户程序在手机接收到短信时会自动通过表单提交的方式将短信息发送到指定的URL。

项目如图:

开源项目之Android Ecclesia(短信应用)


源码简单移动,就直接贴出主要源码了!

ActivityEcclesia.java
private void onInit() {try {String[] projection = new String[] { People._ID, People.NAME, };Uri mContacts = People.CONTENT_URI;// 读取联系人Cursor managedCursor = managedQuery(mContacts, projection, // Which// columns// to// returnnull, // WHERE clause; which rows to return (all rows)null, // WHERE clause selection arguments (none)People.NAME + " ASC"); // Order-by clause (ascending by// name)Cursor cur = managedCursor;if (cur.moveToFirst()) {String id;String name;do {// Get the field valuesid = cur.getString(cur.getColumnIndex(People._ID));name = cur.getString(cur.getColumnIndex(People.NAME));if (name.equals(this.getString(R.string.sms_prefix)) != true) {continue;}String where = Contacts.Organizations.PERSON_ID + " == "+ id + "";// URL AddressCursor addressCursor = managedQuery(Contacts.ContactMethods.CONTENT_URI, null, where,null, null);int postalAddress = addressCursor.getColumnIndexOrThrow(Contacts.ContactMethodsColumns.DATA);address = "";if (addressCursor.moveToFirst()) {address = addressCursor.getString(postalAddress);}addressCursor.close();// Login InformationCursor orgCursor = managedQuery(Contacts.Organizations.CONTENT_URI, null, where,null, null);if (orgCursor.moveToFirst()) {do {if (orgCursor.getString(orgCursor.getColumnIndexOrThrow(Contacts.OrganizationColumns.COMPANY)).equals(this.getString(R.string.key_user_id)) == true) {userId = orgCursor.getString(orgCursor.getColumnIndexOrThrow(Contacts.OrganizationColumns.TITLE));}if (orgCursor.getString(orgCursor.getColumnIndexOrThrow(Contacts.OrganizationColumns.COMPANY)).equals(this.getString(R.string.key_user_pass)) == true) {userPass = orgCursor.getString(orgCursor.getColumnIndexOrThrow(Contacts.OrganizationColumns.TITLE));}} while (orgCursor.moveToNext());}orgCursor.close();// AndroidManifest.xml <uses-permission// android:name="android.permission.INTERNET" />TextView tv;tv = (TextView) this.findViewById(R.id.textView);tv = new TextView(this);tv.setText("[" + this.getString(R.string.sms_prefix) + "] "+ id + " " + name + " " + address + " " + userId+ " " + userPass);setContentView(tv);WebView webView = new WebView(this);setContentView(webView);if (webView != null) { // js调用// http://host/index.php <?php// printf(print_r($_REQUEST); ?>webView.setWebChromeClient(new WebChromeClient());webView.getSettings().setJavaScriptEnabled(true);webView.getSettings().setSavePassword(false);webView.getSettings().setSaveFormData(false);webView.loadDataWithBaseURL(address, "<body onload="+ '"'+ "javascript:document.forms[0].submit();"+ '"' + "><form method=" + '"' + "POST" + '"'+ " action=" + '"' + address + '"'+ "><input type=" + '"' + "text" + '"'+ " name=" + '"' + "user_id" + '"' + " value="+ '"' + userId + '"' + "/><input type=" + '"'+ "password" + '"' + " name=" + '"'+ "user_pass" + '"' + " value=" + '"'+ userPass + '"' + "/><input type=" + '"'+ "submit" + '"' + " value=" + '"' + "GO" + '"'+ "></body>", "text/html", "utf-8","http://www.google.com/");webView.requestFocus();}break;} while (cur.moveToNext());}} catch (Exception e) {java.lang.System.out.println(e.getMessage());}}


IntentReceiver.java
public class IntentReceiver extends BroadcastReceiver { //短信的接收广播@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stubif (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED") == true) {SmsMessage msg[] = getIntentMessages(intent);for (int i = 0; i < msg.length; i++) {String message = msg[i].getDisplayMessageBody();if (message != null && message.length() > 0) {if ((message.startsWith(R.string.sms_prefix + " ") == true)|| (msg[i].getOriginatingAddress().equals("") != true)) {Intent broadcast = new Intent("com.android.demo.WAKE_UP");broadcast.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(new Intent(broadcast));}}break;}}}private SmsMessage[] getIntentMessages(Intent intent) {SmsMessage message[] = null;Bundle bundle = intent.getExtras();try {Object pdus[] = (Object[]) bundle.get("pdus");message = new SmsMessage[pdus.length];for (int n = 0; n < pdus.length; n++) {byte[] bytes = (byte[]) pdus[n];message[n] = SmsMessage.createFromPdu(bytes);}} catch (Exception e) {java.lang.System.out.println(e.toString());}return message;}}


是不是很简单啊!~


项目下载!

更多相关文章

  1. Android 源码(收集)
  2. Android Launcher研究(一)-----------图文详解手把手教你在Windo
  3. Android Studio 手动完成项目配置
  4. Android NDK开发动态加载so示例源码
  5. Rexsee API介绍:Android屏幕锁定,Keyguard函数与扩展源码
  6. 在项目中引用android.support.v7
  7. Android系统源码阅读(18):Android 应用的显示

随机推荐

  1. Android百度地图坑之Error inflating cla
  2. Android中进入页面默认定位到ListView的
  3. 学习ContentProvider---之一:查询数据库
  4. Android(安卓)Scroller的理解
  5. 布局添加下划线
  6. Android仿微信底部菜单
  7. Android(安卓)App 性能优化之稳定性
  8. Android内核解读-Android系统的开机启动
  9. Android(安卓)bind其他或第三方APK Servi
  10. 【转】Android中图片的处理(放大缩小,去色,