0

Итак, фрагменты кода, который я использую ниже. Каждый раз, когда я вызываю намерение, он принимает изображение, и я вижу, что фотография успешно сохраняется, потому что у меня есть захват изображения, открытый на моем mac. Кроме того проблема ... это сохраняет его с совершенно другим именем файла, чем то, что я ему дал. Данные из намерения, возвращенного с startActivityForResult, также возвращают null. У кого-то еще была эта проблема, потому что мой код точно такой, какой он есть, и я даже исправил его, чтобы работать/больше походить на версию документации с использованием логики намерения камеры.Намерение камеры на Google Glass с использованием GDK, не создающего файл с URI, который я предоставляю

Код:

//Calling the intent 
    Uri outputFileUri = Uri.fromFile(createdMediaFile); 
    Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);  
    startActivityForResult(cameraIntent, RUN_CAMERA); 

    //onActivityResult() 
      File mediaStorageDir = new File(
        Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), appPhotoDirName 
        ); 
      File photo = new File(mediaStorageDir.getPath() + File.separator + 
        "IMG_"+ timeStamp + ".jpg"); 
      Log.d(TAG, photo.getAbsolutePath()); 
      Log.d(TAG, "Does file exists: "+photo.exists()); 
      observer = new FileObserver(photo.getAbsolutePath()) { 
       // set up a file observer to watch this directory on sd card 
       @Override 
       public void onEvent(int event, String file) { 
        Log.d(TAG, "File created [" + file + "]"); 

       } 
      }; 
      observer.startWatching(); 

ответ

4

Камера Стекло не поддерживает EXTRA_OUTPUT URI в качестве вклада в деятельность. Вместо этого вы должны получить путь изображения, используя EXTRA_PICTURE_FILE_PATH дополнительно от CameraManager внутри onActivityResult.

+0

Большое спасибо за помощь :) – Andy

+0

На самом деле я до сих пор смущен. Как получить доступ к «CameraManager»? – Andy

+0

Убедитесь, что вы обновили свой GDK до XE12 через Android SDK Manager, а затем вы можете импортировать класс 'com.google.android.glass.media.CameraManager', который содержит необходимую вам дополнительную константу. –

Смежные вопросы