마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 카메라 부분에서 질문이요 ^^

0 추천

...


public class CameraT extends Activity {
 private Preview mPreview;
 private byte[][] mImageData; 
 private boolean gFocussed = false;
 private boolean gCameraPressed = false;

 private static SharedPreferences sPrefs = null;
 public static final String KEY_POPUP_ENV = "key_env";
 public static final String KEY_POPUP_ENV_RUN_MODE = "key_env_run";

 public String mFilename;
 private int mFileNameYear;
 private int mFileNameMonth;
 private int mFileNameDay;
 private int mFileNameCount;

 public static final String SAVE_FILE_YEAR = "sava_file_year";
 public static final String SAVE_FILE_MONTH = "sava_file_month";
 public static final String SAVE_FILE_DATE = "sava_file_date";
 public static final String SAVE_FILE_COUNT = "sava_file_count";


 private String mFileimageRoute = "/sdcard/DCIM/Camera/";


 @Override
 protected void onCreate(Bundle savedInstanceState) {
  
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  mPreview = (Preview) findViewById(R.id.camera_preview);
//  mPreview.setVisibility(View.GONE);   //프리뷰 안보이게 하기
  
  mImageData = new byte[6][];

                                                                                                 

   }

@Override
 public boolean onTouchEvent(MotionEvent event) {
  // TODO Auto-generated method stub

  if (event.getAction() == MotionEvent.ACTION_DOWN) {
   if (mPreview.mCamera != null) {
    
    mPreview.mCamera.takePicture(mShutterCallback, mPictureCallbackRaw,
      mPictureCallbackJpeg);
   }  
  }

  return false;
 }


 @Override
 protected void onDestroy() {
  // TODO Auto-generated method stub
  if (mPreview != null) {
   Log.e("onDestroy", "onDestroy...");

   if (mPreview.mCamera != null) {
    mPreview.mCamera.stopPreview();
    mPreview.mCamera.release();
    mPreview.mCamera = null;
   }
  }
  super.onDestroy();
 }

  private int getPreFileName() {
  if (sPrefs == null) {
   sPrefs = getSharedPreferences(KEY_POPUP_ENV, Context.MODE_PRIVATE);
  }
  mFileNameYear = sPrefs.getInt(SAVE_FILE_YEAR, 0);
  mFileNameMonth = sPrefs.getInt(SAVE_FILE_MONTH, 0);
  mFileNameDay = sPrefs.getInt(SAVE_FILE_DATE, 0);
  mFileNameCount = sPrefs.getInt(SAVE_FILE_COUNT, 0);
  return mFileNameCount;
 }

 private String getRealFileName() {
  MakeFileName_Demo();
  return mFilename;
 } 

...

 현재 코딩을 돌리면 화면을 터치할때 사진이 찍힙니다. 그런데 저는 보안 어플을 맏늘고 싶어서 사진이 버튼을 누루는 부분없이 자동으로 찍혀야하는데....

 

그래서 빨간색의 부분을 노란색 부분으로 넣었으나 프로그램이 돌아가지 않네요.

화면이 검게 변하면서 사진을 한번 찍기는 하나 이상한 이미지를 찍고 저장도 되지 않습니다.

왜그런걸까요 ? 고수님 ㅠㅠ

안드로이드ㅠㅜ (140 포인트) 님이 2013년 2월 24일 질문

1개의 답변

+1 추천
이거 보안어플이 아니고 몰래 캡쳐하는 어플이네요...

 

보안어플이라면 액티비티가 사용되지 않고 안드로이드의 기본 보안용 클래스를 상속해서 구현되야죠

보안을 위해서 카메라를 쓰는 경우는 대부분 잠금해제 실패시 사진찍는거하고 기밀시설에서 카메라 금지시키는거 정도일텐데요...

 

프리뷰 숨기고 터치하면서 찍는다라...

솔직히 문제 원인도 알듯하고 해결 방법도 알듯하지만 스토킹어플 만드는걸 도와드리고 싶진 않네요 죄송합니다
수상한i (8,050 포인트) 님이 2013년 2월 24일 답변
...