Google's been trying to crack down harder on unofficial, non-public APIs a lot harder since Android P, and that pressure is set to further increase with Android Q. The hammer has dropped: If your app targets Android Q, there's a much larger pile of non-SDK APIs that it can't include. And if Google sticks to its previous schedule, that means you'll need to cut that non-public API use by next fall.

Developers have been on notice about this change for a bit more than a year now, as Google has tried to encourage them to migrate off of these private APIs. If that means developers need to ask for new APIs, so be it. But if you're using an API that's greylisted here, you have to come up with another way to accomplish your needs, or risk issues once Google stops allowing it on the Play Store. (Note: There is still a smaller whitelist of "OK" non-SDK APIs, as well.)

Google has written extensive documentation for precisely how to test your app for non-SDK interfaces, and the StrictMode method detectNonSdkApiUsage() can warn if you are via some means you may not have anticipated, such as reflection or JNI.

Whatever the mechanism, if you're using private or undocumented Android APIs that aren't included in the SDK, the clock is ticking to cut them from your app.

With Android Q Beta 2, Google claims to have further tweaked these restrictions, so developers skirting the rules with undocumented/blacklisted APIs should double check to make sure they won't run into issues on Beta 2.