2013-06-12 2 views
2

카메라 이미지를 가져와 일부 처리가 수행되는 웹에 업로드하고 true/false가 반환되는 앱을 빌드해야합니다. 나는이 점에 대해 명확한 설명이 잘되어있는 몇 가지 질문을 접한다.android의 한계

1. 내 앱이 안드로이드 카메라로 캡처 한 이미지를 알 수있는 방법이 있습니까? 여기에서 이해 한 것은 (Android: BroadcastReceiver intent to Detect Camera Photo Taken?) 블루투스 또는 카메라 캡처 등을 통해 사진이 전화기에 추가 될 때마다 알 수 있다는 것입니다. 어쨌든 괜찮습니다. 질문은 내 앱이 백그라운드에서 실행되어 미디어 저장소의 변경 사항을 감지 할 필요가 없습니까? 그렇다면 앱을 열어 카메라를 켠 다음 이미지를 캡처하여 더 효율적으로 사용할 수 있습니다.

2.) Android 휴대 전화에서 웹으로 전송할 수있는 이미지의 크기에는 제한이 있습니까? 안드로이드 휴대폰의 RAM이 적다는 것을 고려하면 (나는이 b'coz에 내가 밝기를 증가시키는 것과 같은 일을 할 필요가있는 다른 앱에서 유사한 문제를 겪게된다. 크기가 10MB보다 큼).

"나는 바퀴를 재발견하고 내 시간을 낭비하고 싶지 않아":

답변

2

시도하고 귀하의 질문에 대답하기 위해;

1) BroadcastReceiver를 등록한다고해서 앱이 백그라운드에서 24 시간 연중 무휴로 실행되는 것은 아닙니다. 시스템에 앱을 등록하는 것과 차별화됩니다. 필요할 때 부팅하고 알립니다. 매우 정기적 인 방송으로 배터리 집약적 인 일을하지 않는 한 이러한 수신기를 사용하여 배터리를 사용하는 것을 두려워 할 필요가 없습니다.

2) 누군가의 3G 연결을 통해 100MB를 전송하면 다른 사람을 행복하게 만들 수는 없다는 것을 이해해야하지만 실제로 제한은 없습니다. 10MB를 전송하는 중에 이전 응용 프로그램이 다운 된 경우 base64 문자열처럼 잘못된 방법을 사용했을 가능성이 큽니다. 나는 어떤 종류의 서버를 업로드 할 지 확신하지 않지만 서버에 이미지를 작은 덩어리로 버퍼링하는 코드 샘플을 찾고 싶습니다. 휴대 전화에서는 안정적인 연결을 보장 할 수 없습니다.

+0

@Stefan .. 1) 방송 수신자가 작동하려면 앱이 실행 중 상태 또는 최소화 된 상태에 있어야하지 않습니까? 2) 휴대 전화에서 이미지 처리를 시도하여 이전 앱이 다운 되었기 때문에 크기가 10MB를 초과하는 이미지의 이미지 데이터를 읽어야했습니다. 내가 의미하는 바를 얻길 바랍니다. –

+1

Nop 일단 시스템이 수신자를 알고 있으면 전화를 처리합니다. 응용 프로그램을 백그라운드에서 실행할 필요는 없습니다 (하지만 필요한 경우에도 가능). –

+0

@Plumillon .. 수신자가 알림을 받으면 (이 경우 미디어 저장소의 변경) 응용 프로그램은 내가 열 것 같아. –

4

1) 안드로이드 개발에는 벌크가 적용되어 이미 완료된 메커니즘이 있습니다. 이 메커니즘은 Intent라고하며, 애플리케이션에서 선언해야합니다. 시스템이 처리합니다. 당신

2) 여기에 제한 없음에 대한 등록 된 구성 요소를 호출하지만, 당신이 가진 것은 백그라운드 스레드 또는 UI 스레드를 차단하지에 대한 서비스 (함께 보낼주의 하시고) 및 타임 아웃 등 연결

을 처리하는 그리고 효율적인 작업은 바퀴를 재발 명할 필요가 없습니다!

+0

AsyncTask에 'async thread'를 실수로 추가하지 마십시오. AsyncTasks는 모든 HTTP 작업을위한 장소가 아니며, 장기 실행 작업이 아닐 수도 있습니다. –

+1

네가 절대적으로 옳다. AsyncTask를 언급하지 않았다. 오해를 피하기 위해 다시 쓰겠다. :) –

+0

이미지 전송에 대한 확신이 있습니까? 왜 내가 다시 묻는 이유는 이미지를 열어 바이트로 변환 한 다음 보낼 수 있기 때문입니다. 안드로이드 폰에서 이미지를 열거 나 읽을 수는 없습니다. 일반적으로 크기가 10MB 이상인 경우 이미지를 열 수 없습니다. 앱 크래시 (NDK 또는 내가 지금까지 할 수 없었던 것을 사용하지 않는 한). 어떻게 생각해? –