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

고수님들 한 수 부탁드립니다.코드 에러도 안뜨는대 작동을 안하내요 ㅠㅠ.

0 추천

public void onAccuracyChanged(Sensor sensor, int accuracy) {
}

public void onSensorChanged(SensorEvent event) {
	if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
	long currentTime = System.currentTimeMillis();
	long gabOfTime = (currentTime - lastTime);
	if (gabOfTime > 100) {
	LocationManager locationManager;
	String context = Context.LOCATION_SERVICE;
	locationManager = (LocationManager) getSystemService(context);
	Criteria criteria = new Criteria();
	criteria.setAccuracy(Criteria.ACCURACY_COARSE);// 정확도
	criteria.setPowerRequirement(Criteria.POWER_LOW); // 전원 소비량
	criteria.setAltitudeRequired(true); // 고도 사용여부
	criteria.setBearingRequired(true); //방향
	criteria.setSpeedRequired(true); // 속도
	criteria.setCostAllowed(true); // 금전적비용
	String provider = locationManager.getBestProvider(criteria,true);
	Location location = locationManager.getLastKnownLocation(provider);
		float Speed = location.getSpeed();
		SpeedMHK = Speed*10000;
		lastTime = currentTime;
					
		if (SpeedMHK > 1) {
			x = event.values[SensorManager.DATA_X];
			y = event.values[SensorManager.DATA_Y];
			z = event.values[SensorManager.DATA_Z];
shake = Math.abs(x + y + z - lastX - lastY - lastZ) / gabOfTime * 10000;
					
		if (shake > SHAKE_THRESHOLD){
		double latitude = location.getLatitude(); // 위도
		double longitude = location.getLongitude(); // 경도
	Geocoder gcK = new Geocoder(getApplicationContext(),Locale.KOREA);
		try{
List<Address> addresses = gcK.getFromLocation(latitude,longitude, 1);
		StringBuilder sb = new StringBuilder();
		if (addresses.size() > 0) {
		for (Address addr : addresses) {
sb.append(addr.getMaxAddressLineIndex()).insert(0, "-살려주세요-\n");
for (int i = 0; i < addr.getMaxAddressLineIndex(); i++)
sb.append(addr.getAddressLine(i)).append("<< \n\n");
		}

속도가 일정 수준이면 흔들림을 잡는 코드를 만들려고 했습니다. 만

실행 시켜보니 로그켓에 에러는 안뜨는대 실행 속도 잡는 화면에서 넘어가질 않고 반응도 없내요.;;;

고수님들 한 수 부탁드립니다.

AErun (200 포인트) 님이 2014년 8월 19일 질문

1개의 답변

0 추천
GPS를 사용하여 속도를 측정 후 뭔가 하려고 하시는거 같은데... GPS는 별도의 Listener를 사용하여 값을 가져오던 것으로 기억합니다. 그러니 지금 소스로 되어있는 onSensorChanged가 호출되는지는 모르겠지만 GPS 신호를 잡지도 못 하였는데 계속 초기화 하여 호출하니 값은 안 나오고 하는 문제가 아닐까 싶네요. 보통 앱에서도 기기의 위치를 가져오려면 시간이 좀 걸리는거 알고계시죠?

결론은 GPS 신호 수신부분을 다시 작성해야 될 것 같습니다.
인연 (31,880 포인트) 님이 2014년 8월 20일 답변
댓글 정말 감사합니다. 초보라 그런 것도 모르고 썼었습니다;;
말씀대로 LocationListener를 넣는 등 바꿔 보았는대요.
난감하게도 위치코드를 안넣은 것이 작동해서 지금 멘붕중입니다.....
갤2에서 테스트 중인대요. 환장하겠습니다.
위치코드를 안 넣은것이 작동한다는 것이 무슨 뜻인지요?
혹시 마지막 위치만 가져온 것이 아닌지요?
갤럭시S2라도 작동은 잘 될텐데요..
...