AIR Development

My first programming love was Flash and ActionScript 3, especially once Adobe introduced the ability to develop desktop and mobile applications with AIR. Development with AIR opened up even more possibilities with the introduction of native extensions, the ability to write native code in C or Java to have an AIR app do even more than what was possible with just the ActionScript side of AIR. Below are some native extensions I have built for Android AIR apps.
App Activity State
The AppActivityState native extension is used for knowing the current Android application state (started, paused, resumed, etc). This can be used to know when an application has been minimized or possibly closed/quit. This gives the ability to save the application state in the event of the application closing, crashing, or being minimized and then restore the application state upon relaunch.
Locale Data
The LocaleData native extension is used for retrieving Locale data on an Android device. Also included is the LocaleObject class that represents a Locale through the use of a language and country code.
Media Metadata Retriever
The MediaMetadataRetriever native extension is used for retrieving metadata from media files. This works for both audio and video files. Can also be used to get the cover art of the media file (if available) as a ByteArray.
Permissions Manager
The PermissionsManager native extension is used for requesting access to protection level dangerous permissions in Android 6.0 Marshmallow (API level 23) and higher. The PermissionsManager class can check to see if specific permissions have been granted or denied, request access to a single permission or multiple permissions at once, and be notified when permission has been granted or denied through the PermissionsEvent class. Use the Permissions class to access a list of constants representing all of the current (API level 23 and lower) protection level dangerous permissions. Also available is the PermissionGroups class containing a list of all the groups of dangerous permissions as a getter that returns an already formed Vector string array for the purpose of requesting multiple permissions at once that are part of the same group.

When using this extension, you must thoroughly read the documentation in order to properly use it. Also feel free to take a look at the included .FLA example and its app.xml file for references.
Telephone Manager
The TelephoneManager native extension is used to access information about the telephony services on the device. Applications can use the methods in this class to determine telephony services and states, as well as to access some types of subscriber information. Applications can also register a listener to receive notification of telephony state changes.