Last active
March 15, 2018 02:50
-
-
Save purezen/57f952da29a100eff6452f31cac85db0 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |
xmlns:tools="http://schemas.android.com/tools" | |
android:layout_width="match_parent" | |
android:layout_height="match_parent" | |
android:paddingLeft="@dimen/activity_horizontal_margin" | |
android:paddingRight="@dimen/activity_horizontal_margin" | |
android:paddingTop="@dimen/activity_vertical_margin" | |
android:paddingBottom="@dimen/activity_vertical_margin" | |
tools:context=".PlacesAPIActivity" | |
android:id="@+id/main_layout"> | |
<Button | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:text="Get Current Place" | |
android:id="@+id/currentButton" | |
android:layout_alignParentTop="true" | |
android:layout_centerHorizontal="true" | |
android:layout_marginTop="50dp"/> | |
<ImageView | |
android:layout_width="wrap_content" | |
android:layout_height="wrap_content" | |
android:layout_alignParentBottom="true" | |
android:layout_alignParentRight="true" | |
android:layout_alignParentEnd="true" | |
android:id="@+id/poweredBy" | |
android:src="@drawable/powered_by_google_light"/> | |
<ImageView | |
android:layout_width="100dp" | |
android:layout_height="100dp" | |
android:layout_marginBottom="-20dp" | |
android:layout_above="@+id/poweredBy" | |
android:layout_alignParentRight="true" | |
android:layout_alignParentEnd="true" | |
android:id="@+id/truiton_image" | |
android:src="@drawable/powered_by_google_light"/> | |
</RelativeLayout> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.purezen_.myapplication; | |
import android.Manifest; | |
import android.content.pm.PackageManager; | |
import android.os.Bundle; | |
import android.support.v4.app.ActivityCompat; | |
import android.support.v4.content.ContextCompat; | |
import android.support.v7.app.AppCompatActivity; | |
import android.util.Log; | |
import android.view.View; | |
import android.widget.Button; | |
import android.widget.Toast; | |
import com.google.android.gms.common.ConnectionResult; | |
import com.google.android.gms.common.api.GoogleApiClient; | |
import com.google.android.gms.common.api.PendingResult; | |
import com.google.android.gms.common.api.ResultCallback; | |
import com.google.android.gms.location.places.Place; | |
import com.google.android.gms.location.places.PlaceLikelihood; | |
import com.google.android.gms.location.places.PlaceLikelihoodBuffer; | |
import com.google.android.gms.location.places.Places; | |
public class MainActivity extends AppCompatActivity implements | |
GoogleApiClient.OnConnectionFailedListener { | |
private static final String LOG_TAG = "PlacesAPIActivity"; | |
private static final int GOOGLE_API_CLIENT_ID = 0; | |
private GoogleApiClient mGoogleApiClient; | |
private static final int PERMISSION_REQUEST_CODE = 100; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.content_main); | |
Button currentButton = (Button) findViewById(R.id.currentButton); | |
mGoogleApiClient = new GoogleApiClient.Builder(MainActivity.this) | |
.addApi(Places.PLACE_DETECTION_API) | |
.enableAutoManage(this, GOOGLE_API_CLIENT_ID, this) | |
.build(); | |
currentButton.setOnClickListener(new View.OnClickListener() { | |
@Override | |
public void onClick(View v) { | |
if (mGoogleApiClient.isConnected()) { | |
if (ContextCompat.checkSelfPermission(MainActivity.this, | |
Manifest.permission.ACCESS_FINE_LOCATION) | |
!= PackageManager.PERMISSION_GRANTED) { | |
ActivityCompat.requestPermissions(MainActivity.this, | |
new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, | |
PERMISSION_REQUEST_CODE); | |
} else { | |
callPlaceDetectionApi(); | |
} | |
} | |
} | |
}); | |
} | |
private void callPlaceDetectionApi() throws SecurityException { | |
// get current location | |
PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi | |
.getCurrentPlace(mGoogleApiClient, null); | |
result.setResultCallback(new ResultCallback<PlaceLikelihoodBuffer>() { | |
@Override | |
public void onResult(PlaceLikelihoodBuffer likelyPlaces) { | |
for (PlaceLikelihood placeLikelihood : likelyPlaces) { | |
// filter for a place type.. according to https://developers.google.com/android/reference/com/google/android/gms/location/places/Place.html#constants | |
if (placeLikelihood.getPlace().getPlaceTypes().contains(Place.TYPE_CLOTHING_STORE)) { | |
Log.i(LOG_TAG, String.format("Values are : %s - %s - %g", | |
placeLikelihood.getPlace().getPlaceTypes(), | |
placeLikelihood.getPlace().getName(), | |
placeLikelihood.getLikelihood())); | |
} | |
} | |
likelyPlaces.release(); | |
} | |
}); | |
} | |
@Override | |
public void onConnectionFailed(ConnectionResult connectionResult) { | |
Log.e(LOG_TAG, "Google Places API connection failed with error code: " | |
+ connectionResult.getErrorCode()); | |
Toast.makeText(this, | |
"Google Places API connection failed with error code:" + | |
connectionResult.getErrorCode(), | |
Toast.LENGTH_LONG).show(); | |
} | |
@Override | |
public void onRequestPermissionsResult(int requestCode, | |
String permissions[], int[] grantResults) { | |
switch (requestCode) { | |
case PERMISSION_REQUEST_CODE: | |
if (grantResults.length > 0 | |
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) { | |
callPlaceDetectionApi(); | |
} | |
break; | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<manifest xmlns:android="http://schemas.android.com/apk/res/android" | |
package="com.example.purezen_.myapplication"> | |
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> | |
<uses-permission android:name="android.permission.INTERNET"/> | |
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> | |
<application | |
android:allowBackup="true" | |
android:icon="@mipmap/ic_launcher" | |
android:label="@string/app_name" | |
android:supportsRtl="true" | |
android:theme="@style/AppTheme"> | |
<meta-data | |
android:name="com.google.android.gms.version" | |
android:value="@integer/google_play_services_version"/> | |
<meta-data | |
android:name="com.google.android.geo.API_KEY" | |
android:value="AIzaSyAPDMTyQdyNWzhvitQnsg5SOsDPaJUpT1M"/> | |
<activity | |
android:name=".MainActivity" | |
android:label="@string/app_name" | |
android:theme="@style/AppTheme.NoActionBar"> | |
<intent-filter> | |
<action android:name="android.intent.action.MAIN" /> | |
<category android:name="android.intent.category.LAUNCHER" /> | |
</intent-filter> | |
</activity> | |
</application> | |
</manifest> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment