Итак, фрагменты кода, который я использую ниже. Каждый раз, когда я вызываю намерение, он принимает изображение, и я вижу, что фотография успешно сохраняется, потому что у меня есть захват изображения, открытый на моем 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();
Большое спасибо за помощь :) – Andy
На самом деле я до сих пор смущен. Как получить доступ к «CameraManager»? – Andy
Убедитесь, что вы обновили свой GDK до XE12 через Android SDK Manager, а затем вы можете импортировать класс 'com.google.android.glass.media.CameraManager', который содержит необходимую вам дополнительную константу. –