【3D技术宅公社】XR数字艺术论坛  XR技术讨论 XR互动电影 定格动画

 找回密码
 立即注册

QQ登录

只需一步,快速开始

调查问卷
论坛即将给大家带来全新的技术服务,面向三围图形学、游戏、动画的全新服务论坛升级为UTF8版本后,中文用户名和用户密码中有中文的都无法登陆,请发邮件到324007255(at)QQ.com联系手动修改密码

3D技术论坛将以计算机图形学为核心,面向教育 推出国内的三维教育引擎该项目在持续研发当中,感谢大家的关注。

查看: 2246|回复: 0

android push:Android短消息推送启动应用程序(SMS PUSH)(BroadCastReceiver)

[复制链接]
发表于 2013-1-25 00:09:29 | 显示全部楼层 |阅读模式
程序通过BroadCastReceiver监听短消息,并判断短信的号码,当满足预设号码时,启动一个Activity。

SmsReceiverActivity.java
  1. package com.zeph.android.sms.receiver;

  2. import android.app.Activity;
  3. import android.content.Intent;
  4. import android.os.Bundle;
  5. import android.widget.TextView;
  6. /**
  7. *
  8. * @author BenZeph
  9. *
  10. */
  11. public class SmsReceiverActivity extends Activity {
  12.         private TextView myTextView;

  13.         @Override
  14.         public void onCreate(Bundle savedInstanceState) {
  15.                 super.onCreate(savedInstanceState);
  16.                 setContentView(R.layout.main);
  17.                 Intent intent = getIntent();
  18.                 String message = intent.getStringExtra("MESSAGE");
  19.                 myTextView = (TextView) findViewById(R.id.myTextView);
  20.                 myTextView.setText(message);
  21.         }
  22. }
复制代码
程序的重点在BroadCastReceiver
SmsBroadCastReceiver.java
  1. package com.zeph.android.sms.receiver;

  2. import android.content.BroadcastReceiver;
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import android.os.Bundle;
  6. import android.telephony.SmsMessage;

  7. /**
  8. *
  9. * @author BenZeph
  10. *
  11. */
  12. public class SmsBroadCastReceiver extends BroadcastReceiver {

  13.         @Override
  14.         public void onReceive(Context context, Intent intent) {
  15.                 String phoneNum = "";
  16.                 StringBuilder sb = new StringBuilder();
  17.                 Bundle bundle = intent.getExtras();
  18.                 if (bundle != null) {
  19.                         Object[] myObjectPuds = (Object[]) bundle.get("pdus");
  20.                         SmsMessage[] messages = new SmsMessage[myObjectPuds.length];
  21.                         for (int i = 0; i < myObjectPuds.length; i++)
  22.                                 messages[i] = SmsMessage
  23.                                                 .createFromPdu((byte[]) myObjectPuds[i]);
  24.                         for (SmsMessage currentMessage : messages) {
  25.                                 sb.append("消息来自:\n");
  26.                                 sb.append(currentMessage.getDisplayOriginatingAddress());
  27.                                 phoneNum = currentMessage.getDisplayOriginatingAddress();
  28.                                 sb.append("\n短消息内容\n");
  29.                                 sb.append(currentMessage.getDisplayMessageBody());
  30.                         }
  31.                 }
  32.                 if (phoneNum.equals("09681000631")) {
  33.                         Intent intentNewTask = new Intent(context,
  34.                                         SmsReceiverActivity.class);
  35.                         intentNewTask.putExtra("MESSAGE", sb.toString());
  36.                         intentNewTask.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  37.                         context.startActivity(intentNewTask);
  38.                 }
  39.         }

  40. }
复制代码
Manifest要注册Receiver,同时提供短消息的User-Permission
Manifest
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3.     package="com.zeph.android.sms.receiver"
  4.     android:versionCode="1"
  5.     android:versionName="1.0" >

  6.     <uses-sdk android:minSdkVersion="8" />
  7.     <uses-permission android:name="android.permission.RECEIVE_SMS"/>

  8.     <application
  9.         android:icon="@drawable/ic_launcher"
  10.         android:label="@string/app_name" >
  11.         <activity
  12.             android:label="@string/app_name"
  13.             android:name=".SmsReceiverActivity" >
  14.             <intent-filter >
  15.                 <action android:name="android.intent.action.MAIN" />

  16.                 <category android:name="android.intent.category.LAUNCHER" />
  17.             </intent-filter>
  18.         </activity>
  19.         <receiver android:name="SmsBroadCastReceiver">
  20.             <intent-filter>
  21.                 <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
  22.             </intent-filter>
  23.         </receiver>
  24.     </application>

  25. </manifest>
复制代码
http://blog.csdn.net/benw1988/article/details/7000813
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|3D数字艺术论坛 ( 沪ICP备14023054号 )

GMT+8, 2024-11-23 21:28

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表