Im creating an intent to an activity by clicking on a button which should open google places, but it closes again really fast and says no location selected, and returns to the main activity, and then nothing happens if i click again.
My api should be fine, I have checked that it’s the correct SHA1-fingerprint thats connected to the api key.
The result code is 2
It worked earlier in the activity before this one, but I needed it to open when i click on a button instead, and now when I try to open this new activity as an intent it wont work.
public class MapActivity extends AppCompatActivity { int PLACE_PICKER_REQUEST = 1; int status; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_events); status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); if (status != ConnectionResult.SUCCESS) { if (GooglePlayServicesUtil.isUserRecoverableError(status)) { GooglePlayServicesUtil.getErrorDialog(status, this, 100).show(); } } if (status == ConnectionResult.SUCCESS) { int PLACE_PICKER_REQUEST = 199; PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder(); Context context = this; try { startActivityForResult(builder.build(context), PLACE_PICKER_REQUEST); } catch (GooglePlayServicesRepairableException e) { e.printStackTrace(); } catch (GooglePlayServicesNotAvailableException e) { e.printStackTrace(); } } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); System.out.println("Result code: " + resultCode); System.out.println("Request code: " + requestCode); if (requestCode == 100) { status = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); } if (requestCode == 199) { //process Intent...... if (data != null) { Place place = PlacePicker.getPlace(data, this); String toastMsg = String.format("Place: %s", place.getName()); Toast.makeText(this, toastMsg, Toast.LENGTH_LONG).show(); } else { String toastMsg = ("No location selected."); Toast.makeText(this, toastMsg, Toast.LENGTH_LONG).show(); } } }
}
This is from the intent which create the new intent to maps
public void onClick(View view) { Intent i = new Intent(this, MapActivity.class); startActivity(i); }
Advertisement
Answer
I think its happening because of you are using old method of getPlace
try to swap the arguments, by changing it from:
Place place = PlacePicker.getPlace(data, this);
to
Place place = PlacePicker.getPlace(getContext(), data);
Update #2
Enable Google places API in the developer console and add these lines to AndroidManifest
<meta-data android:name="com.google.android.geo.API_KEY" android:value="ADD_YOUR_API_KEY_HERE" />
Update #3
after some search, it looks like there is others having same issue. Look at these links:
https://github.com/zhangtaii/react-native-google-place-picker/issues/21
https://stackoverflow.com/a/32751164/
https://github.com/googlesamples/android-play-places/issues/13