各位大侠,我想做一个这样的东西。
android手机接收到短信后,根据短信内容自动运行另一个应用程序。
如接收到短信“ks”则自动手机开始录像。
这段时间再看大概知道用广播做,但是做法还有点不清楚,能否帮忙指点一下小弟。感激不尽

解决方案 »

  1.   

    想法不错,好像API demo里有短信相关的程序,可以参考,总体应该不难。
      

  2.   

    就是想问下,现在就是用android自带的短信功能,接收到短信后会发出一个广播,现在是不是只要自己写一个接收器就可以了,在广播接收器复写onCreate方法,在此方法中调用打开摄像头的接口。总之我也不是非常清楚,能否详细指点一下,或者给予一些代码参考
      

  3.   

     写一个广播接收SmsReciver,注册action 为android:name="android.provider.Telephony.SMS_RECEIVED,短信来了可以用一个会发出这个广播,截获后进行短信解析,OnRecive方法中根据Bundle bundle = intent.getExtras();Object messages[] = (Object[]) bundle.get("pdus");SmsMessage smsMessage[] = new SmsMessage[messages.length];for (int n = 0; n < messages.length; n++) {
                smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
                if(smsMessage[n].getMessageBody().contains("ks")){
                    do(){----录像代码---}
                }
      

  4.   


    public class SMSReceiver extends BroadcastReceiver
    {
    private static final String ACT = "android.provider.Telephony.SMS_RECEIVED"; private static final String TAG = "SMSReceiver"; @Override
    public void onReceive(Context context, Intent intent)
    {
    String action = intent.getAction();
    if (action.equals(ACT))
    {
    Bundle bundle = intent.getExtras();
    if (bundle != null)
    {
    Object[] pdus = (Object[]) bundle.get("pdus");
    Log
    .i(TAG, "$ >" + pdus.length
    + "< pieces of message received");
    SmsMessage[] msg = new SmsMessage[pdus.length];
    for (int i = 0; i < pdus.length; i++)
    {
    msg[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
    } for (SmsMessage message : msg)
    {
    String content = message.getMessageBody();
    Log.i(TAG, "$ message body = >" + content + "<");
    if (content.equals("cal"))
    {
    Intent it = new Intent();
    it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    it.setComponent(new ComponentName(
    "com.android.calculator2",
    "com.android.calculator2.Calculator"));
    context.startActivity(it);
    }
    else if (content.equals("oCam"))
    {
    // openCamera();
    }
    }
    }
    }
    }
    }
    写了个大约,楼主随意看看吧...
    <application android:icon="@drawable/icon" android:label="@string/app_name">
    <receiver android:name="SMSReceiver">
    <intent-filter>
    <action android:name="android.provider.Telephony.SMS_RECEIVED"></action>
    </intent-filter>
    </receiver> </application> <uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
    receiver注册和权限神马的,你懂的。
      

  5.   

    除非录像也是自己写的,写成Service在后台运行神马的。
      

  6.   


    那我不能用android自带的照相机功能么,或者就直接在SmsMessageReceive中写一个打开摄像头开始录像的方法么?