используя Android намерение позвонить и получить результат от приложения камеры, независимо от того, если оно специально построено - PullRequest
1 голос
/ 05 октября 2010

вот в чем проблема: я искал ответ для этого, и до сих пор я заставил его работать для пользовательского приложения камеры, которое поставляется с htc-телефонами.

у меня есть следующие

 protected void onActivityResult(int requestCode, int resultCode, Intent data){

         if (requestCode == REQUEST_FROM_CAMERA && resultCode == RESULT_OK) {
                 InputStream is=null;

                 File file=mInterface.getTempFile();


                 try {
                     is=new FileInputStream(file);
                 } catch (FileNotFoundException e) {
                     e.printStackTrace();
                 }

                 if(is==null){
                     try {
                         u = data.getData();
                         is=getContentResolver().openInputStream(u);
                         mInterface.saveStringPreferences(GlobalInterface.URI_SAVENAME, u.toString());
                     } catch (FileNotFoundException e) {
                         e.printStackTrace();
                     }
                 }

                 //Now "is" stream contains the required photo, you can process it
                 setImage(is);

               }

// и это код функции, которая вызывает намерение:

 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
     // intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(mInterface.getTempFile()));
      startActivityForResult(intent, REQUEST_FROM_CAMERA);

оставшиеся функции getTempFile () должны создать временный файл в /sdcard/blabla.tmp и функция для установки захваченного изображения в представлении изображения.

так что проблема в том, что я протестировал этот код на кастомной камере на телефоне LG, и он вылетает. вопрос: есть ли способ получить URI для местоположения изображения (мне не нужно конкретное место сохранения, это может быть набор по умолчанию с камеры), и были также некоторые проблемы, с которыми я столкнулся, которые мне не нужно решать, как получить изображение с меньшим разрешением. Мне просто нужно одно изображение, чтобы иметь возможность установить его в imageView и методе, который будет работать для каждого приложения камеры, которое есть, пользовательское или родное, независимо от того.

это возможно, или мне нужно создать новый класс камеры для этого? по моему мнению, приложения камеры, которые поставляются с телефоном, более приспособлены к модели телефона, поэтому я бы предпочел использовать их, а не создавать пользовательские.

Тпй.

1 Ответ

0 голосов
/ 28 февраля 2012

Попробуйте это:

Bitmap thumbnail = (Bitmap) data.getExtras().get("data");  

Источник

...