2015-08-22 1 views
0

Я разрабатываю приложение, которое может сделать снимок (передняя камера), просто нажав кнопку. Приложение отлично работает на Android API 10 и 15, но когда я пытаюсь это сделать в Android Lollipop, я получаю силовую ошибку.Сделайте снимок в android lollipop программно

Вот мой код:

private void takePicture() { 
    openCamera(); 
    //System.gc(); 
    camera.startPreview(); 
    new Handler().postDelayed(new Runnable() { 

     @Override 
     public void run() { 
      camera.takePicture(
        new ShutterCallback() { 

         @Override 
         public void onShutter() { 
          // TODO Do something when the shutter closes. 
         } 
        }, new PictureCallback() { 

         @Override 
         public void onPictureTaken(byte[] _data, Camera _camera) { 

         } 
        }, new PictureCallback() { 

         @Override 
         public void onPictureTaken(byte[] _data, Camera _camera) { 
          // TODO Do something with the image JPEG data. 
          Bitmap bitmap = BitmapFactory.decodeByteArray(_data, 0, _data.length); 
          imgPicture.setImageBitmap(bitmap); 
          Toast.makeText(TakePhotoActivity.this, "Length = " + _data.length, Toast.LENGTH_SHORT).show(); 
          ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
          bitmap.compress(Bitmap.CompressFormat.JPEG, 40, bytes); 
          File f = new File(Environment.getExternalStorageDirectory() 
            + File.separator + "test.jpg"); 

          // remember close de FileOutput 
          try { 
           f.createNewFile(); 
           FileOutputStream fo = new FileOutputStream(f); 
           fo = new FileOutputStream(f); 
           fo.write(bytes.toByteArray()); 
           fo.close(); 
          } 
          catch (IOException e) { 
           // TODO Auto-generated catch block 
           e.printStackTrace(); 
          } 
          CloseCamera(); 
         } 
        }); 
     } 
    }, 1000); 
} 

Update: Я нашел это, но до сих пор я не знаю, что делать: http://developer.android.com/reference/android/hardware/Camera.PictureCallback.html

+0

Где моя ошибка в LogCat? вы говорите, что он падает, но вы не обнаруживаете LogCat ... не имеет смысла :) –

+0

Я не могу проверить свое приложение в режиме отладки, потому что eclipse не может распознать мой телефон с помощью lollipop для Android. Я просто могу использовать другое устройство Android с API 10, которое отлично работает. –

+0

Какой телефон вы пытаетесь использовать? –

ответ

0

в Lolipop и выше вещи изменились, ваш раздавить, вероятно, это исключение безопасности, потому что вам нужно спросить у пользователя, чтобы он использовал свою камеру или доступ к своей галерее, для этого here - это документация Google, в которой все объясняется, как реализовать.

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

  • Нет связанных вопросов^_^