2016年6月29日 星期三

google map v2 簡單抓自己位置(current)---Android Studio

在這裡為大家簡單介紹該需要什麼

首先一開始你為了要連到 Google Play services library所提供的Google APIS(像是Google Sign-In, Games, or Drive),你就必須要使用GoogleApiClient,他提供了一個Google Play services進入點和管理使用者跟Google Service的網路連線--(詳細就不多說了附上 https://developers.google.com/android/guides/api-client)

首先一開始在 onCreate()裡加入
// Create an instance of GoogleAPIClient.
if (mGoogleApiClient == null) {
    mGoogleApiClient = new GoogleApiClient.Builder(this)
        .addConnectionCallbacks(this)
        .addOnConnectionFailedListener(this)
        .addApi(LocationServices.API)
        .build();
}
這裡提供了你可以使用google api 以及 你所需要的 OAuth 2.0 scopes(實作出 API 的存取管制)
protected void onStart() {
    mGoogleApiClient.connect();
    super.onStart();
}
protected void onStop() {
    mGoogleApiClient.disconnect();
    super.onStop();
}
上述不多說

接下來才是重頭戲
public class MainActivity extends ActionBarActivity implements
        ConnectionCallbacks, OnConnectionFailedListener {
    ...
    @Override
    public void onConnected(Bundle connectionHint) {
        mLastLocation = LocationServices.FusedLocationApi.getLastLocation(
                mGoogleApiClient);
        if (mLastLocation != null) {
            mLatitudeText.setText(String.valueOf(mLastLocation.getLatitude()));
            mLongitudeText.setText(String.valueOf(mLastLocation.getLongitude()));
        }
    }
}
在主程式中你必須先implement
ConnectionCallback以及OnConnectionFailedListener

在onConnected裡去實作方法出來,這裡用了FusedLocationProviderApi的getLastLocation那他會回傳location,最後你就可以加在你一開啟地圖上的初始位置。

記得Manifest的權限要加
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>


**貼心提醒:在android 6.0的手機記得要替自己部屬的程式加開權限,要不然你怎麼樣也抓不到自己現在的位置

需要程式碼的,我在寄給大家

https://github.com/andy086912597/googlemapdemo/tree/master/GoogleMapDirectionSimple-master

相關網站
https://developer.android.com/training/location/retrieve-current.html








沒有留言:

張貼留言