이 코드를 실행 중이지만 logcat에서 중요한 것을 볼 수 없습니다.
내가 무엇을 놓치고 있습니까?
내 활동 클래스는 다음과 같습니다.
public class MainActivity extends Activity implements LocationListener, ConnectionCallbacks, OnConnectionFailedListener, com.google.android.gms.location.LocationListener {
GoogleApiClient mGoogleApiClient;
LocationRequest mLocationRequest;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnStart = (Button) findViewById(R.id.btnStart);
Button btnStop = (Button) findViewById(R.id.btnStop);
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(LocationServices.API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
btnStart.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//SERVICE STARTED HERE
// Intent i = new Intent(getBaseContext(),MainService.class);
// getBaseContext().startService(i);
Log.d("SERVİCE", "START");
mGoogleApiClient.connect();
Toast.makeText(v.getContext(), "SERVICE START", Toast.LENGTH_SHORT).show();
}
});
btnStop.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//SERVICE STOP HERE
Intent i = new Intent(getBaseContext(),MainService.class);
getBaseContext().stopService(i);
Log.d("SERVİCE", "STOP");
mGoogleApiClient.disconnect();
Toast.makeText(v.getContext(), "SERVICE STOP", Toast.LENGTH_SHORT).show();
}
});
}
// @Override
// public void onLocationChanged(Location location) {
// // TODO Auto-generated method stub
// Log.d("KORDINAT-lat", String.valueOf(location.getLatitude()));
// Log.d("KORDINAT-long", String.valueOf(location.getLongitude()));
// }
@Override
public void onConnectionFailed(ConnectionResult arg0) {
// TODO Auto-generated method stub
Log.d("TAG", "GoogleApiClient connection has failed");
}
@Override
public void onConnected(Bundle arg0) {
// TODO Auto-generated method stub
mLocationRequest = LocationRequest.create();
mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
mLocationRequest.setInterval(2000); // Update location every second
LocationServices.FusedLocationApi.requestLocationUpdates(
mGoogleApiClient, mLocationRequest, this);
//
// Location location= LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
// Log.d("KORDINAT-lat", String.valueOf(location.getLatitude()));
// Log.d("KORDINAT-long", String.valueOf(location.getLongitude()));
}
@Override
public void onConnectionSuspended(int arg0) {
// TODO Auto-generated method stub
Log.d("TAG", "GoogleApiClient connection has been suspend");
}
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
Log.d("Location received: " , location.toString());
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
}
또한 아래와 같은 Android 파일에 필요한 permession을 추가합니다.
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
또한 추가 meta-data
했지만 아무 일도 일어나지 않는 것 같습니다. Logcat에 오류가 표시되지 않습니다.
무엇을 출력 할 것으로 기대하십니까? 클라이언트가 성공적으로 연결되면 단순히 위치 업데이트를 요청합니다. 위치가 변경되지 않으면 아무것도 출력하지 않습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다