На этот раз у меня есть вопрос относительно пользовательской камеры Android, а НЕ встроенной камеры, доступной через Camera_intent. Мне не разрешено использовать это. Я пытаюсь разрешить пользователю навести камеру на что-нибудь и выбрать «Отправить» в onOptionsItemMenu.
У меня нет проблем с выполнением этого ... отдельно. Если я прошу его отправить что-то одним нажатием кнопки, он отправляет. Если я скажу камере сохранить изображение, не отправляя его, это произойдет.
Я сталкиваюсь с проблемой, когда пытаюсь сделать оба. Как есть, используя этот код:
public boolean onOptionsItemSelected(MenuItem item) {
Intent i;
File file2;
camera.takePicture(null, mPictureCallback, mPictureCallback);
switch (item.getItemId()) {
case R.id.save:
return super.onOptionsItemSelected(item);
case R.id.send:
file2 = new File(filename);
i = new Intent(Intent.ACTION_SEND);
i.putExtra(Intent.EXTRA_SUBJECT, "Sample Picture");
System.out.println("file//" + file2);
i.putExtra(Intent.EXTRA_STREAM, Uri.parse("file//" + file2));
i.setType("image/png");
startActivity(Intent.createChooser(i, "Email file"));
finish();
return super.onOptionsItemSelected(item);
Камера «щелкает» или «мерцает», как будто она делает снимок, а затем сразу же открывает почтовый клиент. Когда я выбираю, что я хочу взять, Gmail говорит, что это нулевое местоположение. Однако, если я удаляю часть, которая запускает средство выбора электронной почты, изображение сохраняется должным образом и находится там.
Почти как будто она пропускает камеру, делая шаг.
Я уверен, что решение этого простое, у меня сейчас просто запекшийся мозг, и, вероятно, я не вижу леса из-за деревьев. (если это даже так, как говорится в этой аналогии).
Запустить ли часть камеры в другом потоке?
У меня была идея использовать логическое значение для проверки существования и размера файла, но я не уверен, как заставить программу проверять это снова и снова, пока он не вернет true.