奇思妙想,但无从下手,还望帮助 各位大侠,我想做一个这样的东西。android手机接收到短信后,根据短信内容自动运行另一个应用程序。如接收到短信“ks”则自动手机开始录像。这段时间再看大概知道用广播做,但是做法还有点不清楚,能否帮忙指点一下小弟。感激不尽 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 想法不错,好像API demo里有短信相关的程序,可以参考,总体应该不难。 就是想问下,现在就是用android自带的短信功能,接收到短信后会发出一个广播,现在是不是只要自己写一个接收器就可以了,在广播接收器复写onCreate方法,在此方法中调用打开摄像头的接口。总之我也不是非常清楚,能否详细指点一下,或者给予一些代码参考 写一个广播接收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(){----录像代码---} } 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注册和权限神马的,你懂的。 除非录像也是自己写的,写成Service在后台运行神马的。 那我不能用android自带的照相机功能么,或者就直接在SmsMessageReceive中写一个打开摄像头开始录像的方法么? 加密的sqlite Android2.3 & Android4.0 Android通过代码打开如下界面 android状态栏中的3G、信号等图标怎么从右边弄到左边? android 闹钟 高手帮忙!android省电软件计算省电多少? 关于使用Fragment需要继承FragmentActivity的疑惑 monkeyrunner 测试 只能通过ID来获取控件? android怎么通过jni调用C语言写得协议源码 准备学Android开发,得买个啥样的手机测试呢? Android 开发:如何连接到服务器上的mysql数据库 关于android提取sdcard图片的问题
smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
if(smsMessage[n].getMessageBody().contains("ks")){
do(){----录像代码---}
}
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注册和权限神马的,你懂的。
那我不能用android自带的照相机功能么,或者就直接在SmsMessageReceive中写一个打开摄像头开始录像的方法么?