What is an Android Application Record?
It is a record carrying an Android package name. Tapping a tag that holds one launches that application, and offers the store page when the application is absent. It is an external type record, it exists only on Android, and it should almost always follow a URL rather than replace one.
What it is
An external type record whose payload is a package name, the reverse domain identifier that names an application on Android.
Android provides a helper to construct it correctly rather than assembling the fields by hand, alongside the other record constructors in its reference documentation. Writing tools expose it as a field asking for the package name.
What it guarantees
Two useful things, and one of them is unique among record types.
It guarantees which application handles the tag. Without it, a tag holding a URL may be claimed by the browser, by an application that registered the domain, or by whatever the user chose as a default. With it, the named application wins.
And it handles the missing case: rather than failing, Android offers the store page for that package. No other record type turns a tap into an install path.
Writing one
You need the exact package name, which is not the application's display name. It is visible in the store URL for the application, and getting it wrong produces a tag that offers to install something that does not exist.
Put it after a URL record rather than alone. A tag carrying only an application record does nothing whatsoever on an iPhone, whereas a tag carrying a URL first degrades gracefully on both platforms.
Verify the package name before a batch
A wrong package name is invisible on inspection, since it looks like a plausible identifier, and it only reveals itself when a phone offers to install nothing. Tap one tag with the application uninstalled before writing the rest.
How it gets misused
As the only record on a tag, which excludes every iPhone user for no benefit.
To force an application on someone who does not want it, which produces an install prompt for a stranger who tapped a poster. That is an unpleasant experience and it rarely converts.
And to lock a deployment to an application that may not survive. A tag naming a package is tied to that package existing, being maintained and staying in the store. A URL through your own domain outlives all three.
The legitimate use is narrow and genuine: an audience that already has your application, where you want certainty about which application opens. Staff tools, member cards, equipment used by people you have onboarded.
Frequently asked questions
Where do I find the package name?
In the store URL for the application, as the identifier parameter. It is not the display name, and using the display name produces a tag that offers to install nothing.
Does it work on every Android device?
The mechanism is part of the platform rather than a manufacturer feature, so it is broadly available. What varies is how the install prompt is presented.
Can I name several applications?
The record names one package. A tag needing to reach several applications is better served by a URL, with the platform deciding which registered handler takes it.
Should I use it instead of a URL?
No, after one. A URL works on both platforms and survives an application being renamed or withdrawn, so it belongs first with the application record as an Android specific addition.