6

我需要创建一个服务应用程序,如果从内置相机应用程序中获取任何新图像,它总是查找和检索图像文件。

1)如果新图像是从内置相机应用程序中拍摄的,我的服务需要观看和拍摄图像

我们如何在我的服务中获取图像路径或图像数据。

4

2 回答 2

5

清单代码:

 <receiver android:name=".pictureReceiver" >
        <intent-filter android:priority="10000" >
           <action android:name="com.android.camera.NEW_PICTURE"/>
      <data android:mimeType="image/*"/>
        </intent-filter>
</receiver>

接收代码:

@Override
    public void onReceive(Context arg0, Intent arg1) {
           String selectedImageUri = arg1.getData().getPath();
           Log.d("TAG", "Received new photo:::"+selectedImageUri );
               Log.d("TAG","file Path"+getRealPathFromURI(arg1.getData(),arg0));
    }
 public String getRealPathFromURI(Uri contentUri,Context context)
        {
            try
            {
                String[] proj = {MediaStore.Images.Media.DATA};

                Cursor cursor =  context.getContentResolver().query(contentUri, proj, null, null, null);
                int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
                cursor.moveToFirst();
                return cursor.getString(column_index);
            }
            catch (Exception e)
            {
                return contentUri.getPath();
            }
        }
于 2012-09-10T09:34:43.140 回答
1

仅供参考,建议从 ICS API 级别 14 开始收听官方广播:http: //developer.android.com/reference/android/hardware/Camera.html#ACTION_NEW_PICTURE。所以过滤“android.hardware.action.NEW_PICTURE”,并且仅当您还需要支持 pre-ICS 时才使用“com.android.camera.NEW_PICTURE”。

于 2015-09-19T00:48:53.807 回答