如何一直听用户的相机事件

时间:2014-09-17 09:18:21

标签: android events camera photo contentobserver

我一直在写一个像Android应用程序的Dropbox,它会自动将照片上传到服务器。当用户通过相机拍照并将其保存在SD卡上时,会注意到上传这些照片。

我启动了一项服务以确保长时间收听,并注册了一个内容观察器来监听相机事件。但是当操作系统处于资源压力之下时,它将终止服务并且内容观察者将不再被解雇。那么如何使内容观察者始终有效呢?

顺便说一下,我的问题是询问如何像服务一样尽可能长时间地运行内容观察者。如果内容观察者不是最佳选择,那么还有什么。

1 个答案:

答案 0 :(得分:1)

试试这个,但它有一些限制:

<receiver android:name=".pictureReceiver" >
        <intent-filter android:priority="10000" >
            <action android:name="android.intent.action.CAMERA_BUTTON" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
</receiver>

BroadcastReceiver实施了当前正在侦听"android.intent.action.CAMERA_BUTTON"的内容。但是,在想要它时似乎没有被调用。如果前台活动没有消耗该事件,它只会被广播。

OR

您可以使用FileObserver

new FileObserver(path) {
@Override
public void onEvent(int event, String path) {
    if (event == FileObserver.CREATE)
        Toast.makeText(getActivity(), "File created", Toast.LENGTH_SHORT).show();
    }
}.startWatching();

Tutorial Link