Error adding geofences in Android (status code 1000)

35,904

Solution 1

You get GEOFENCE_NOT_AVAILABLE (code '1000') when user disagrees to "Use Google' location services" in Settings->Location->Mode: enter image description here

To fix it:

  • go to Settings->Location->Mode
    enter image description here
  • set "Device only (Use GPS to determine your location)"
  • set any other option to get the popup (e.g. "High accuracy (Use GPS, Wi-Fi and mobile networks to determine location")
  • dialog ""Use Google' location services" is shown
  • choose "Agree"

Solution 2

Posting this answer since the settings in Android have changed a lot. I had this error twice when I was running a Nexus 5X emulator running API 28. I managed to solve it both times by doing the following:

  1. Turn off your application you are developing (don't let it be in the background)
  2. Go to Settings -> Security & Location -> Location -> Advanced -> Google Location Accuracy. Turn 'Improve Location Accuracy' off.

enter image description here

  1. Turn on 'Improve Location Accuracy'

Turn on your application again and adding geofences worked for me after I took these steps.

EDIT: I ran into this issue again a few months later, sometimes the emulator is stubborn and does not actually turn on location accuracy correctly to allow Google's Geofence API to recognise it is turned on. I had turn 'Improve Location Accuracy' on and off at least 10 times before location accuracy worked.

Solution 3

Is a little later, but just now I had this issue. My guess is:

you are using any kind of fake GPS on your tests (Lockito, emulator, etc)?

I took some hours until I found out that the fake locations seems to disable the Geofence support! You cannot register or trigger a Geofence if you are not really in the location.

If you turn off the fake GPS,the Geofence support become enabled again.

Solution 4

I was getting the statusCode 1000 when i was trying to run this app on the emulator. The thing which fixed this was to go in Settings-> locations and access-> Check the enable wifi and gps option on the emulator and it will fix it

Solution 5

You actually gave the answer in your question: Geofence service is not available now. Typically this is because the user turned off location access in settings > location access.

I had this same issue, and just going to settings --> location and making sure I select the mode for high accuracy fixed this issue.

PS Device only mode is not good enough, it needs to be High accuracy mode.

Hope this helps.

Share:
35,904
Speed Demon
Author by

Speed Demon

Updated on May 23, 2021

Comments

  • Speed Demon
    Speed Demon almost 3 years

    I am getting an error in the onAddGeofencesResult(int statusCode, String[] geofenceRequestIds) callback with statusCode = 1000.

    I have my GPS enabled and my WiFi. I also have Google Play Services and I am able to track my location and request updates. Why am I not able to add geofences? I am not able to add geofences even from the documentation sample app. I get the following Toast message:

    "Add Geofences: Failure, error code 1000 GeofenceRequestIds=[1,2,1,2]"

    From the documentation (statusCode 1000):

    public static final int GEOFENCE_NOT_AVAILABLE

    Geofence service is not available now. Typically this is because the user turned off location access in settings > location access.

    Constant Value: 1000 (0x000003e8)