0

我有一个应用程序,它有一个接收动作 ACTION_NEW_PICTURE 的广播接收器。该接收器在大多数设备上都可以正常工作,除了带有 htc 和三星相机 UI 的设备。

这是我的接收器:

BroadcastReceiver receiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
            // Log.e(TAG, "Intent Received");
            // Toast.makeText(Helper.this, "Intent Received",
            // Toast.LENGTH_SHORT).show();
            if (intent.getAction() == android.hardware.Camera.ACTION_NEW_PICTURE) {
                NameEditor.mediaType = "image";
            } else {
                if (intent.getAction() == android.hardware.Camera.ACTION_NEW_VIDEO) {
                    NameEditor.mediaType = "video";
                }
            }
 NameEditor.pictureUri = intent.getData();
            startActivity(dIntent);
        }
    };

    filter = new IntentFilter(android.hardware.Camera.ACTION_NEW_PICTURE);
    filter.addAction(android.hardware.Camera.ACTION_NEW_VIDEO);
    try {
        filter.addDataType("image/*");
        filter.addDataType("video/*");
    } catch (MalformedMimeTypeException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
    registerReceiver(receiver, filter);

有人可以帮我解决这个问题吗?

4

1 回答 1

0

首先,该广播是 API 级别 14 的新内容,因此除非相关设备运行 Android 4.0,否则该广播不是预期的。

其次,AFAIK,没有要求相机应用程序必须发送该广播,无论该相机应用程序是由设备制造商还是第三方在 Play 商店之外提供。当然,我可以编写一个不会发送该广播的相机应用程序。因此,我认为ACTION_NEW_PICTURE您的应用程序应该投机取巧地使用它,而不是依赖它。

于 2012-12-17T00:42:42.423 回答