标签:android开发 摄像头 broadcastreceiver 监听拍照录像
昨天,突然要求在照相和录像的时候要获得当时的时间,要获得准确时间一般就是在按快门按钮或按停止按钮生成文件的时候获得时间是比较准确的。
因为,如果在点击打开应用里拍照或录像按钮就获得时间,是必然是和真正拍照或录像时间有误差的。因为有加载摄像头时间,对焦时间,并且,用户进入拍照页面后,有可能不是立刻按快门进行拍照。所以在之前取时间是一定有误差的,比且不受控制。在一种就是在拍完照片或录完视频,点击完成或使用,返回自己app后在取时间,这样也是有较大的误差的,用户可能拍完或录完之后没有立刻回到app页面,这种情况也是不受控制的。这样我们就只能在调用摄像头的页面做文章,一个是在按快门按钮时,或是按停止按钮时。
由于是调用摄像头是调用Android系统的,所以我就想到的了广播,果然,发现有两个对应广播。
android.hardware.action.NEW_PICTURE和android.hardware.action.NEW_VIDEO
在AndroidManifest.xml文件中注册两个广播,然后我们通过过滤接受这广播就可以执行想要做的操作了。
下面是在AndroidManifest.xml里的配置
<receiver android:name="com.example.getnettime.MyBroadcastReceiver" > <intent-filter android:priority="1000" > <action android:name="android.hardware.action.NEW_PICTURE" /> <data android:mimeType="image/*" /> </intent-filter> <intent-filter android:priority="1000" > <action android:name="android.hardware.action.NEW_VIDEO" /> <data android:mimeType="video/*" /> </intent-filter> </receiver>
intent-filter里的data便签一定要加上,否则接收不到。
然后我们再写一个广播接受着就行了,
public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.i("TAG", "intent======>>>>>>"+intent.getAction()); } }
接到广播后就可以执行我们想要进行的操作了。
经过测试,发现,这广播是在文件生成的时候发出的,就是按停止按钮后发出的。目前,还没找到按快门的时候的方法,如果有朋友找到方法请告知分享
Android应用开发-----------------接受照相机拍照广播和录像广播
标签:android开发 摄像头 broadcastreceiver 监听拍照录像
原文地址:http://blog.csdn.net/ls703/article/details/45581179