Air-Share FAQ

Air-Share is a "Meta-Sharing" app. It allows sharing of Android Intents between devices.

https://play.google.com/store/apps/details?id=com.blackspruce.gloo Watch a brief demo of the app on YouTube.

You can also use the app to send and receive from any compatible HTML-5 browser. This demo video covers browser sharing : https://www.youtube.com/watch?v=vV6KzehnrHs

Air-Share FAQ

Trouble Pairing : the app is not responding to pairing requests.

First make sure the app's Web Server is running on both devices by going to the Settings screen and selecting “Allow incoming Shares”.

Second, make sure both devices are on the same Wifi /Ethernet /HotSpot network.

If one device is on the Mobile Data Network then it won't find the other device on your home Wifi network. Does your Wifi network have separate 5GHz and 2.4GHz SSIDs? Sometimes Network Discovery packets will not cross over between them.

For battery powered devices to be “seen” on the network, you must navigate to the apps Pairings screen. If you see the button labeled “Make Visible” then click it. AC or Mains powered devices like Android TVs and charging phones are always visible. Battery powered devices are only visible when the Pairings screen is displayed.

If the Network Discovery still does not work then scroll down on the Pairings screen and try QR code pairing (requires the installation of the Barcode Scanner app and a camera on one of your devices) OR if both devices have NFC, then open the app and place devices back-to-back and “tap to beam”.


Pairing issues can happen if your device's IP address changes while the Air-Share server is running. For example if you running a VPN app to connect to a video streaming service (Netflix, Hulu,etc). Some VPN apps blindly forward all data packets to the cloud. Also, this can happen when changing Wifi networks from home to work, etc. Ideally the app should detect any changes in IP addresses and restart the server with the new IP address each time, but Google has now restricted detection of network changes in Android. Sometimes a manual restart of the app is needed to get the IP address corrected. Go to Settings and “Disable Incoming Shares” and then re-enable it. Keep in mind that Network Discovery relies on Zeroconf or Bonjour which uses multi-casting. Your Wifi router and your devices must support multi-casting for Network discovery to work. You may want to check your router manual and settings for things like ZeroConf, Bonjour, UPNP, Multi-casting and make sure they are enabled.

If you are using a Wifi Hotspot then Network Discovery pairing may fail and you should try QR pairing.

I tried to share something and it didn't work.

Check the Notifications Area on the receiving device to see if the shared item is there. If your receiving device is on the lock-screen, the share may have “queued” in the Notification Area.

Also, for Android 9 (Pie) or 10 (Q) devices it maybe that the Android OS has shut-down the Air-Share background service due to it not being used for some time. This feature in the Android OS has become more aggressive in versions 9 and 10 to help save on device battery and protect privacy. Open the Air-Share app on the receiving device and try sharing again. If this problem occurs often you may consider excluding the Air-Share app from Battery Optimization.

Are you running Android 10 (Q) and if so, did you grant Air-Share the privilege to “Draw Over Other Apps”? Without this privilege the app must be running and on-screen to launch incoming shares. Incoming hares are queued as notifications if the privilege is not granted.

Additionally, not every app on the Play Market is coded to correctly create a Share Intent. This can break the Share function, but just for that app. Try another app's share function; if that fails, please contact me at the email address on the Google Play page with more details including what app(s) you were using and Android version your devices are.

How to Share a File?

You may be confused that the app has no File Chooser dialog; so how do you share a file? Air-Share is a “Meta-Sharing” app. Use the Share button on virtually any other Android app (like your favourite file browser) and choose Air-Share as the destination. Then your paired devices will appear in a list; select it and your content is shared. Still not sure? Watch the video : https://www.youtube.com/watch?v=RNw4M6bY4qo


Where do my files go?

Your files are placed in the Downloads directory of your device. It is your responsibility to delete them.


How do I side-load apps using Air-Share?

There are several ways to side-load, but first you should be aware that side-loading apps creates a risk of infecting your device with Malware . Only side-load apps from trusted sources.

Method 1: Open Air-Launch, choose a paired device, then long-press an App's name to load the APK.

Method 2: You can use an APK Backup/extractor app to share APK files with paired devices.

Method 3: You can upload APK files via Browser Sharing.

In all cases you must change the Security Settings on the destination device to allow installation of apps from unknown sources. Method 2, detailed example: install an “App Back-Up” app on your phone, open the app, select some apps from your phone and then share the APKs with Air-Share. On the destination device, choose to open the APK files with the Package Installer. Be careful sharing some native apps this way if you are sharing to a Nexus Player as it has an X86 CPU while your phone is likely ARM based. Methods 1 & 2 are covered in the YouTube demo video : https://www.youtube.com/watch?v=RNw4M6bY4qo



How do I shut the app off?

Open the app to Settings and click on “Disable Incoming Shares”. Also un-check “Start Air-Share after booting”.


Why is the notification icon always on?

This is a requirement of the Android OS. The Air-Share server will be disabled in doze mode or when memory gets low unless a “sticky” notification is present. When the server is stopped, incoming shares will fail.

One option to consider is "Allow incoming shares whenever App is running". (When the app exits or is killed the server stops. As long as the app is in history stack it will receive shares)


I don't see any Bluetooth devices when sharing?

Ensure both devices are running Air-Share ver 1.7.5. or better. (Select “About -Donate”). Use the Android Bluetooth Settings dialog and pair the two devices in the standard Android fashion. Leaving the share destination device with the Bluetooth Pairings screen open may help to ensure it is “visible” to the source device during Bluetooth discovery.

Once you have confirmed the above; proceed to the Share button of your chosen app, choose Air-Share and wait several seconds for Bluetooth discovery to complete. When discovery is complete the Share Destination list will update with the results. Depending the number of devices you have paired with, discovery could take some time. (Air-Share uses its own RFComm UUID and protocol and is not compatible with OBEX file push.)


If you are still having trouble with Bluetooth Sharing read this : https://www.reddit.com/r/GooglePixel/comments/5qx0k7/bluetooth_turns_itself_off/ddtihh6/


My Chromecast device does not appear as a Share Destination.

The content you are sharing must as marked as mime-type “video/...”, audio/...” or “image/...” by the sharing app. When this content type is shared with Air-Share, Google Cast discovery begins, and this can take several seconds to complete. Once done, the Share Destination list is updated. If your device is an Android TV, be sure you are not running a VPN. Air-Share cannot cast YouTube or other Web Player links as they are DRM protected.


Why does the app need the Location permission?

The Coarse Location permission was required when I decided to add Bluetooth sharing. The app never actually requests your location. This is a legitimate Google security requirement; because a simple Bluetooth scan can reveal your location by discovering public BT Beacons that have "well known" coordinates. This has been used by some apps surreptitiously, for tracking of shoppers movements, etc.

See here : https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-hardware-id


What's with the Android TV live Channels?

The app creates three live channels for photos, videos and music. You must go to the Live Channels app settings and enable Air-Share channels before “tuning” them.

E.g.: When sharing a photo to Android TV, choose “Add to Live Channels” as the destination app and the photo will appear in a continuous play-back loop on the Photo Channel. (Video and Music files work similarly.) To remove items from the loop, use a file manager to delete the files from the Downloads directory. You can also share M3U8 HTTP Live Streaming playlists (i.e. Web Channels). Each shared playlist will be added as its own channel, and so you must enable it via the Live Channels Settings each time.


My Device will not allow me to install apps from “Unknown Sources”.

On newer Android devices navigate to “Apps and Notifications” in the Settings app. Choose “Special app access”->”Install unknown apps”. Choose Air-Share and click “Allow from this source”.

On older devices this security setting can usually be enabled by turning on Developer mode on your device. Go to Settings->About Phone->Build Number and click on the Build Number 7 times. Now return to Security Settings and enable “Unknown Sources”. You should be aware that sideloading apps in this way increases your chances of becoming infected with Malware. Only load apps from sources you trust.


How to Side-Load Air-Share APK onto an Android device without Google Play store?

There are several ways. The easiest one; click the Share button from another app and choose “QR Air-Share” instead of regular Air-Share. Select “File - Url” and scroll down and click “QR Share this App”.

Another: go to the apps “Browser Sharing” menu option on your phone and generate a new URL for sharing. Open the URL on the second device in the browser and scroll down and click on “Download Air-Share APK from device@address. Once downloaded, use the Downloads Notification to install the APK using Package Installer. After Air-Share is running you can pair the two devices.


How to stop Clipboard Notifications?

Note : Clipboard sharing is disabled by Google in Android 10 and up.

Open the apps main settings screen and scroll down to the check-box labeled “Disable clipboard event notifications”.


What is “Pinch Player”?

Pinch Player was created to open web links “in a pinch” if no other browser was found. Many Android TVs ship without a web browser app. I recommend you install a real web browser and use that. (See next Question.)


When sharing I get “No apps found to satisfy Intent”?

This means there is no app available to open the type of content you shared. You can usually fix this by installing an app or by clicking Advanced Sharing and changing to “Send Intent” . For web links on Android TV, Sign-in to Google Play using your Gmail account from your desktop/laptop browser and find a browser app and click the Install button and choose the Android TV from the list of devices. Some other apps I recommend for the Nexus Player are Sideload Launcher (launches non-TV apps), QuickPic (Jpeg viewer), MX Player (mp4 player), Kodi (formerly known as XBMC; a media centre), and ES File Explorer.


Is this a Cloud service?

No. A web server is started on your Android device to service the sharing requests. The data never leaves your local Wi-Fi network. I do gather anonymous Google Analytics which helps to improve the app.


Is it Secure?

It is as secure as the network that you use it on. If your Wi-Fi is secured with WPA and only you know the key, then you are good. This version of Air-Share does not use encryption and is not recommended for use on public networks. Do not send financial or other sensitive information using Air-Share. Encryption will appear in a future version.


Why do I have to re-pair?

If your devices IP address has changed you need to re-pair. This is a security rule to prevent others from sending malware or undesired content to your device. This can happen if your Router or your phone/TV has rebooted. If this is a regular occurrence you may consider using static IP addresses for your devices. See http://android.stackexchange.com/questions/103343/is-it-possible-to-assign-a-static-ip-address-without-a-dns


What does “View Intent” and “Send Intent” mean?

These refer to the two main flavours of the Android Intents mechanism. Intents are the underlying technology for all sharing in every Android app. Most times you will want to use View. If you do not see the correct app in the activity chooser on the receiving device or if you get a message saying no suitable app was found; then try a Send.


Why is Air-Share showing up every time I go to open a file or email?

Air-Share is installed with an intent filter that casts a broad net to allow you to share most anything. You can disable this by clicking the green button labeled “Outgoing Shares Enabled” on the main settings screen. The button will turn red and all outgoing sharing will be disabled. In most cases this is not necessary as you can use the “Always” button to direct all similar future requests to the correct app.


The shared file is re-named to “Air-Share-XXXX.dat”.

One of the quirks of the Android Content Provider system is that the original file name is often lost when the file is shared. This is beyond the control of the app. If you use a File Explorer app like ES File or Astro and use the Send/Share option the file name will be preserved.




I can't share a Facebook video from my news feed with with my Android TV.

Currently Facebook makes it difficult to share videos outside their app or web site. This appears to be deliberate. Hopefully they will open things in the future. In the meantime you can share as follows:

      1. visit the mobile Facebook site at “http://m.facebook.com” using your browser. Often you can replace the “www.” with an “m.” in the video's url. The mobile site uses HTML-5 video and not Flash.
      2. From the browser choose menu->share and select Air-Share.
      3. Ensure that a Browser is installed on Android TV to view the HTML-5 video. You may need a mouse on your Android TV to play the video.


I shared a video, but only the sound works. (OR only the video works) .

In cases like this Air-Share has successfully shared the video but the remote device's video app is lacking the correct codec or it has switched from h/w playback to s/w playback or a similar issue. Air-Share itself only transfers the video file and relies on whatever video player is present on the remote device to do the playback. For Android TV users I highly recommend installation of Kodi (formerly XBMC). You can side-load it from here: http://kodi.tv/download/ BE SURE TO LOAD the X86 version on Nexus Player.


Sharing “Copy Link” or “COPY URL” using clipboard .

Note: Clipboard sharing is disabled by Google in Android 10 and up.

Some apps don't do a proper Android Share function but instead will copy a link to the clipboard. When this is done from inside an app however the Clipboard applet does not show up and so how do you trigger a Share Intent? A Clipboard monitor facility runs in the Air-Share Service (For devices running Honeycomb and up.). So when the Air-Share Server is running, and a “Copy link” happens you will see a notification appear which you can then select to trigger Air-Share. These notifications will expire after 30 seconds if they are not used.


I tried to share a YouTube video to my browser and it says “Video Unavailable”.

The owner of the video won't allow it to be “Embedded”. Share it again and this time long-press on the Share Destination in the Air-Share app. The video will then appear in a pop-up window where it should play correctly.


I tried to share a Facebook video/post to my browser and it says “Content not found” or broken link.

The owner of the post has secured it so that only friends and followers can see it. Try signing into Facebook on the browser and re-share it.


I tried to share an Amazon Prime/Netflix/Hulu/Spotify/etc link and it won't play in the browser on the other device.

Most likely you are missing the correct Digital Rights Management (DRM) software in the browser. Most “web players” for subscription services use Widevine DRM. It may be possible to use another browser app or update your devices browser version to get it to work. See also https://www.amazon.com/gp/help/customer/display.html?ie=UTF8&nodeId=201811480 or https://help.netflix.com/en/node/14759 and https://castlabs.com/resources/drm-comparison/

If you are feeling nerdy and really want to know if your browser supports DRM video then share this link to your browser and scroll down to the section labeled “drm”. If you see “com.widevine.alpha”: null then you are out of luck :-(




Can I automate/script Air-Share on a command line?

You can use “curl, WGET or any similar HTTP tool to script a send or view intent from any device. First go to the PC/Mac screen and generate a new Browser URL. Replace the URL text in the examples below with your new URL. Here are a couple of example curl commands done on Windows 7. The first example sends a VIEW intent along with a photo:


>curl -v -X POST -H "Content-Type: multipart/form-data" -F intent-info={\"type\":\"image/*\",\"data\":\"myphoto.jpg\",\"action\":\"android.intent.action.VIEW\",\"userintent\":\"VIEW\"} -F file=@"c:/Users/smith/myphoto.jpg" http://192.168.0.25:6100/ApCdU


This example sends a VIEW intent with a web link:


>curl -v -X POST -H "Content-Type: multipart/form-data" -F intent-info={\"type\":\"text/plain\",\"data\":\"http://www.google.ca\",\"action\":\"android.intent.action.VIEW\",\"userintent\":\"VIEW\"} http://198.164.192.82:6100/ApCdU


By changing the JSON value for “userintent” to QUEUE you create notifications/recommendations. If you wish to send a bundle and specify the target app for the Intent then you can do that too, although it gets rather long, so you may want to embed the parameters into a text file (see the CURL command help to do this):


>curl -v -X POST -H "Content-Type: multipart/form-data" -F intent-info={\"remoteApp\":{\"pkg\":\"com.blackspruce.gloo\",\"activity\":\"com.blackspruce.gloo.PinchPlayer\"},\"action\":\"android.intent.action.SEND\",\"userintent\":\"SEND\",\"type\":\"text/plain\",\"bundle\":[{\"class\":\"java.lang.String\",\"key\":\"android.intent.extra.SUBJECT\",\"value\":\"Air-Share is nifty\"},{\"class\":\"java.lang.String\",\"key\":\"android.intent.extra.TEXT\",\"value\":\"https://www.youtube.com/watch?v=UlHSCWUAiio\"}]"} http://198.164.192.82:6100/ApCdU


Each device that connects using this method must have its own unique generated URL. The first device to query each URL has its IP address permanently linked to that URL and is the only IP allowed to use it. For stable scripts over the long term, it is recommended that your assign static IP addresses. See http://android.stackexchange.com/questions/103343/is-it-possible-to-assign-a-static-ip-address-without-a-dns


How to script launching an app without data (launch intent instead of send/view)?

See previous question and generate a new Browser URL.


>curl -v -X GET http://Z.Z.Z.Z:6100/AXXXX/APKList.html?launch=com.android.app.name


If you change the URL above to read “?download=” you can automate the downloading of APK files from your device without using the Android Debug interface.


I want to use Air-Share in my app.


There is a simple integration feature using Android Intents. First send a ACTION_PICK Intent to “com.blackspruce.gloo.PickPairedDevice”. After the user selects a paired device, in onActivityResult, you will receive an Intent with two String extra's ; “deviceName” and “shareToken”. Next create a VIEW, SEND or SEND_MULTIPLE Intent, adding the “shareToken” extra to this new Intent. Send the Intent to “com.blackspruce.gloo.ReceiveLocalIntent” along with whatever data you wish to share. Follow Android Developer recommended techniques to build your Intent. The “shareToken” will direct your Intent to the user's chosen device and then will expire after the Intent is forwarded. View sample source code here: https://github.com/BlackSpruce/Air-ShareAPIDemo. If you want to target the Intent to your own app on the share destination device, you can try implementing a custom mime type in the intent's setType method or use a custom URI Scheme. If your app has an Intent filter to match, then it should be the only choice to receive the Intent.


GMAIL Notification crash issue:

One some Marshmallow devices , after you pair with an Android TV device, and a sharing Shortcut is created, you may encounter an issue with Gmail notifications crashing once they are selected from the notification area. This corresponds to Android Issue 188887 https://code.google.com/p/android/issues/detail?id=188887 This bug is fixed in Nougat.

PROBLEM WORK-AROUND : On the apps main settings screen on your TV, scroll down and rename the Device Name to something other than the default. Be-sure to remove the previous pairing as well on the apps Android Pairings screen. This will prevent creation of Resolver Activity Shortcuts during pairing and should prevent the issue.


Dude, your UI is so nineties.

https://www.youtube.com/watch?v=pWdd6_ZxX8c


Beats this.