博客爲 有時個哥 原創,如需轉載請標明出處:http://blog.csdn.net/ls703/article/details/45581179
昨天,突然要求在照相和錄像的時候要獲得當時的時間,要獲得準確時間一般就是在按快門按鈕或按停止按鈕生成文件的時候獲得時間是比較準確的。
因爲,如果在點擊打開應用裏拍照或錄像按鈕就獲得時間,是必然是和真正拍照或錄像時間有誤差的。因爲有加載攝像頭時間,對焦時間,並且,用戶進入拍照頁面後,有可能不是立刻按快門進行拍照。所以在之前取時間是一定有誤差的,比且不受控制。在一種就是在拍完照片或錄完視頻,點擊完成或使用,返回自己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());
}
}
接到廣播後就可以執行我們想要進行的操作了。
經過測試,發現,這廣播是在文件生成的時候發出的,就是按停止按鈕後發出的。目前,還沒找到按快門的時候的方法,如果有朋友找到方法請告知分享