The CommonsBlog

Maps V2 May Need ACCESS_NETWORK_STATE Permission

The Google Maps V2 documentation has a section describing the permissions needed to use Maps V2 in your app.

However, there is evidence that this list is missing one entry: ACCESS_NETWORK_STATE. The stack trace shown in this StackOverflow question clearly shows Maps V2 code calling getActiveNetworkInfo(), which definitely needs ACCESS_NETWORK_STATE.

Now, most of the time, Maps V2 does not call getActiveNetworkInfo(). I have never seen a crash in the lab for missing ACCESS_NETWORK_STATE, and neither has the author of the StackOverflow question. But, it would appear that there is some set of conditions whereby Maps V2 does call getActiveNetworkInfo(). Probably, therefore, this is a documentation bug, though there’s a slight chance that the bug is that Maps V2 should not be calling getActiveNetworkInfo() at all.

Since the Maps V2 code is coming from an Android library project attached to your project, and since at the time of this writing (AFAIK) there has only been one release of this project, this issue may affect all apps using Maps V2.

Whether you go ahead and add ACCESS_NETWORK_STATE now, or you wait to see what happens with the associated Google Maps issue, is up to you. The more permissions you request, the more likely it is that some prospective user will skip your app. However, crashing under some unknown circumstances because you lack this permission is not exactly a great answer, either.

(and mad props to Tristan Waddington for posting the StackOverflow question!)

Stuck on an Android problem? Subscribers have access to live office hours chats with Mark Murphy, to help you work through your challenges!