当前位置: 代码迷 >> Android >> 关于短信触发的拍照上传解决方法
  详细解决方案

关于短信触发的拍照上传解决方法

热度:32   发布时间:2016-05-01 21:42:19.0
关于短信触发的拍照上传
我已经写好的了一个Activity。在这个Activity中我只要按下一个拍照的button.就会执行 mCamera.takePicture(mShutterCallback, null, mPictureCallback);然后通过mPictureCallback将刚拍的用socket推送至PC机。现在我想用短信来触发拍照。该怎么办?
我现在的做法是在这个Activity中放了代码注册的广播接收。
  public void onResume()
{
super.onResume();
Log.d("OnResume","begin");
mReceiver=new Smsreceiver();
mfilter=new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
registerReceiver(mReceiver,mfilter);
Log.d("onResume","end");
}
 
@Override
public void onPause()
{
Log.d("onPuase","begin");
unregisterReceiver(mReceiver);
Log.d("onPause","end");
}
但是一执行的话。执行完onResume马上执行onPause。然后报错连相机都还没打开。怎么办。
  public class Smsreceiver extends BroadcastReceiver
{
private static final String queryString="@shoot"; 
@Override
  public void onReceive(Context context,Intent intent)
  {
  if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED"))
  {
//收到Broadcast会跑到这里  
Log.d("短信","成功接收!");
Bundle extras = intent.getExtras();  
if (extras == null) return;  
Object[] pdus = (Object[]) extras.get("pdus"); //pdu为一条短信  
for (int i = 0; i < pdus.length; i++) 
{  
SmsMessage message = SmsMessage.createFromPdu((byte[]) pdus[i]);  
String msg=message.getMessageBody();  
if(msg.startsWith(queryString))//短信开头以demo:shoot开头的话则。。。你懂的
{  
Log.d("短信","成功进入!");
mCamera.takePicture(mShutterCallback, null, mPictureCallback);
}  

  }
  }  
}这个那个继承广播接受者的类。



------解决方案--------------------
这个思路可以呀
------解决方案--------------------
恭喜楼主
都这么晚了
求分分...
  相关解决方案