그래, 여기에 내가 블루투스를 통해 휴대 전화에 연결된 비디오 카메라가있는 문제가 있습니다. 기기와의 모든 통신은 Android 서비스를 통해 이루어집니다. 서비스는 GPS 좌표로 카메라를 주기적으로 업데이트합니다. 안타깝게도 내 회사에서 서비스를 작성하지 않았으므로 서비스를 시작하고 명령을 보내도록 제어 할 수 있습니다 (단, 장치에 연결되어있는 경우 GPS는 자체적으로 수행합니다). 애플리케이션에 의해 서비스가 시작되면 우리 회사 OUI가 포함 된 페어링 된 장치에 연결을 시도합니다. 기기가 연결 해제되면 (기기가 꺼져 있거나 배터리가 소모 될 수 있음) 사용자가 애플리케이션을 다시 시작할 때까지 자동으로 다시 연결되지 않습니다. 따라서 GPS 좌표는 해당 시나리오에서 카메라로 전송되지 않습니다.알람 관리자를 사용하여 메인 애플리케이션이 실행되지 않는 경우에만 서비스를 시작하십시오.
사용자가 연결해야하는 장치를 다시 켜면 사용자가 (이 서비스에 대해 알지 못하고 무엇을 알지 못하기 때문에) 문제가 될 수 있습니다.
그래서 나는 AlarmManager를 브로드 캐스트 리시버 또는 서비스 (아마 몇 초가 걸리기 때문에 인 텐트 서비스)와 함께 사용할 수 있다고 생각했다. 아마도 몇 분 전까지 만해도 카메라에 연결되어 있는지 확인할 수있었습니다. 현재 연결이 끊어지면 연결을 시도하지 않는 경우 (페어링 된 장치가있는 경우).
그러나 내 응용 프로그램이 이미 실행중인 경우 문제는 무엇입니까? 장치가 연결되어 있으면 사용자가 장치에 연결하는 것을 제어합니다 (장치를 요청하는 메시지가 표시됨). 내 응용 프로그램이 실행되고 있거나 종료되었는지 알려면 공유 환경 설정 또는 이와 비슷한 것을 사용해야합니까? 응용 프로그램이 실행중인 경우 서비스에서 알 수있는 방법이 있습니까? 나는 이것이 까다로워지는 것을 볼 수있다. 누구든지이 문제를 처리하는 방법을 알고 있다면 알려주십시오.
나는 이런 일이 일어나는 곳에서 약간 혼란 스럽다. 당신은 정교 할 수 있습니까? 알람을 설정하여 X 분 후에 서비스를 시작한다고 가정 할 때, 내 응용 프로그램이나 부팅시 실행되는 내용이 무엇입니까? X는 사용하려는 간격 (단지 2 분이면 1 분 안에 시작하도록 설정 함)입니다. 나는 내 애플 리케이션에서 이것을하고 있다고 가정한다. Activity 나 내 Application 클래스에 넣을 수 있을까? –
나는 귀하의 신청서를 의미합니다. 응용 프로그램 사용 중에 한 활동에서 다른 활동으로 이동할 수 있으므로 응용 프로그램 자체에서 설정하는 것이 좋으며 활동에서 설정하는 것이 좋습니다. 내가 X라고 말할 때, 나는 그 간격을 의미하지만, 그것을 반복하도록 설정하지 않는다. 그리고 호출 될 때 그것을 다시 설정한다. – MByD
괜찮은 것 같습니다. 감사. –