如何通知我图片被捕获,Android

时间:2015-11-22 14:56:21

标签: java android

我正在为顶点项目开发相机应用程序。

在这种模式下,我的目标是用户:

  1. 捕捉图片(主线程)
  2. 将图片发送到服务器(后台线程)
  3. 开始预览相机(主线程)
  4. 用户可以捕捉另一张图片(可选)
  5. 检索并显示服务器的结果
  6. 我正在使用此代码捕获图像,但它可以正常工作。

    mCamera.takePicture(mShutterCallback, null, new PhotoHandlerGame(getApplicationContext(), mCamera));
    

    我的问题是:如何通知我图片被捕获并保存,以便开始将其发送到服务器而不会阻塞主线程?

    更新:程序员回答后我在onCreate中添加了这段代码

    private BroadcastReceiver receiver;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_game_mode_action);
    
        IntentFilter filter = new IntentFilter();
        filter.addAction("android.hardware.action.NEW_PICTURE");
        filter.addAction("com.android.camera.NEW_PICTURE");
        receiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                Log.d(TAG,"Image saved - broadcast receiver");
            }
        };
        registerReceiver(receiver,filter);
    

    但是,它不起作用,这段代码出了什么问题?

1 个答案:

答案 0 :(得分:2)

public static final String ACTION_NEW_PICTURE

广播操作:相机拍摄新照片,并将照片条目添加到媒体存储中。 getData()是图片的URI。

常量值:" android.hardware.action.NEW_PICTURE"

了解更多信息: http://developer.android.com/reference/android/hardware/Camera.html#ACTION_NEW_PICTURE