java - Android 如何通知我照片已被捕获

标签 java android

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

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

  1. 拍摄照片(主线程)
  2. 将图片发送到服务器(后台线程)
  3. 开始预览相机(主线程)
  4. 用户可以拍摄另一张照片(可选)
  5. 从服务器检索并显示结果

我正在使用此代码来捕获图像并且它有效。

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);

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

最佳答案

public static final String ACTION_NEW_PICTURE

广播 Action :相机拍摄一张新照片,并且该照片的条目已添加到媒体存储中。 getData() 是图片的 URI。

常量值:“android.hardware.action.NEW_PICTURE”

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

关于java - Android 如何通知我照片已被捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33856152/

相关文章:

java - Jersey 将字符值序列化为 ASCII 等效数字字符串

java - 如何在android上的另一个布局中为 TextView 分配一个值

android - 是否可以更改 picasso 用于图像的缓存大小?

java - 无法获取要从数据库重新加载的列表项

java - 缺少 Slick2D 方法

java - 如何使用 Firebase 处理异步数据库?

java - 更新子项时如何更新jpa中双向关系所有者的fk

java - 在 DispatcherServlet 中未找到名称为 'spring' 的 URI [/my-app/register] 的 HTTP 请求的映射

Android:将文件保存到内部数据时需要 BufferedOutputStream 吗?

java - 安卓 : Using Listfragment instead of Fragment