For developers · Checked 1 October 2026

The Android 17 local network permission

Short answer: once your app targets Android 17 (API level 37), access to devices on the user’s local network is blocked by default. To keep it, either use a system picker, such as the Output Switcher for casting or the NsdManager service picker, or declare and request the new ACCESS_LOCAL_NETWORK runtime permission. It belongs to the Nearby devices permission group, so users who already granted a permission from that group, such as Bluetooth, are not asked again.

Local network access by target SDK

From Android Developers’ Local network permission documentation, read 1 October 2026.

Target SDKLocal network accessWhat to do
36 or lowerImplicitly granted with INTERNETNothing yet; do not declare or request ACCESS_LOCAL_NETWORK
37 (Android 17) or higherBlocked by defaultUse a system picker or request ACCESS_LOCAL_NETWORK
Android 16, opt-in testingBlocked only if you opt inGrant NEARBY_WIFI_DEVICES to restore access

What counts as local network access

Outgoing and incoming TCP connections and UDP unicast, multicast or broadcast to local addresses all need the permission, and so does resolving .local names. The block sits deep in the networking stack, so it applies to raw sockets, mDNS and SSDP, NsdManager, and libraries such as OkHttp and Cronet. WebView traffic inherits the host app’s permission. Two exceptions: DNS to a local DNS server on port 53, and apps that use the Output Switcher as their in-app picker.

Path A: system pickers, no permission

For casting, Google recommends the Output Switcher: the system discovers and connects to the streaming device, and your app needs no local network permission. For other devices found with mDNS, use DiscoveryRequest#FLAG_SHOW_PICKER so the system shows a dialog and the user chooses one device, then get its address with registerServiceInfoCallback or resolveService; connections to addresses obtained this way don’t need the permission.

Path B: requesting ACCESS_LOCAL_NETWORK

Home automation and IoT management apps that need broad, ongoing access declare ACCESS_LOCAL_NETWORK in the manifest, check it before any local traffic, and request it at runtime. Handle denial and later revocation, because local traffic is then blocked. Android resets the denial counter for this permission, so an app that was refused Nearby devices earlier can ask again after explaining why. Browsers get EPERM for blocked UDP and can call android_getnetworkblockedreason on TCP sockets, which returns ANDROID_NETWORK_BLOCKED_REASON_LNP.

When this hits you

Nothing changes until you raise your target SDK to 37, but Google Play’s target API requirements move every year, see Google Play target API level. Other Android 17 changes worth planning for: app memory limits, the location button and the Contact Picker.

Where Censuus fits

A permission prompt users understand keeps them onboard; being found brings them. Censuus ranks apps by the visits they draw, and adding your app is free on the List my app form. Placement comes from traffic and sponsorship: apps climb on the visits they draw, and a sponsor can pay to rise higher.

Frequently asked questions

What is the Android local network permission?

ACCESS_LOCAL_NETWORK, a runtime permission in the Nearby devices group. Apps targeting Android 17 need it, or a system picker, to reach devices on the user’s local network.

Do I need ACCESS_LOCAL_NETWORK if I target Android 16 or lower?

No. With target SDK 36 or lower, access is implicitly granted with INTERNET, and Google says not to declare or request ACCESS_LOCAL_NETWORK yet.

Does casting need the local network permission?

Not if you use the Output Switcher, which handles discovery and connection for the app.

Will users see a new prompt?

Only if they haven’t already granted a permission from the Nearby devices group, such as Bluetooth; otherwise they aren’t asked again.

Does the permission affect OkHttp or WebView?

Yes. The block is in the networking stack, so it covers libraries like OkHttp and Cronet, and WebView traffic inherits the app’s permission.

Guides for app developers

Put your app in the ranking

Censuus ranks apps by the visits they draw and by sponsorship, no bots. Listing is free; sponsorship raises placement.