NfcAdapter.SetBeamPushUris(Uri[], Activity) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Set one or more Uri
s to send using Android Beam (TM).
[Android.Runtime.Register("setBeamPushUris", "([Landroid/net/Uri;Landroid/app/Activity;)V", "")]
public void SetBeamPushUris (Android.Net.Uri[]? uris, Android.App.Activity? activity);
[<Android.Runtime.Register("setBeamPushUris", "([Landroid/net/Uri;Landroid/app/Activity;)V", "")>]
member this.SetBeamPushUris : Android.Net.Uri[] * Android.App.Activity -> unit
Parameters
- uris
- Uri[]
an array of Uri(s) to push over Android Beam
- activity
- Activity
activity for which the Uri(s) will be pushed
- Attributes
Remarks
Set one or more Uri
s to send using Android Beam (TM). Every Uri you provide must have either scheme 'file' or scheme 'content'.
For the data provided through this method, Android Beam tries to switch to alternate transports such as Bluetooth to achieve a fast transfer speed. Hence this method is very suitable for transferring large files such as pictures or songs.
The receiving side will store the content of each Uri in a file and present a notification to the user to open the file with a android.content.Intent
with action android.content.Intent#ACTION_VIEW
. If multiple URIs are sent, the android.content.Intent
will refer to the first of the stored files.
This method may be called at any time before Activity#onDestroy
, but the URI(s) are only made available for Android Beam when the specified activity(s) are in resumed (foreground) state. The recommended approach is to call this method during your Activity's Activity#onCreate
- see sample code below. This method does not immediately perform any I/O or blocking work, so is safe to call on your main thread.
#setBeamPushUris
and #setBeamPushUrisCallback
have priority over both #setNdefPushMessage
and #setNdefPushMessageCallback
.
If #setBeamPushUris
is called with a null Uri array, and/or #setBeamPushUrisCallback
is called with a null callback, then the Uri push will be completely disabled for the specified activity(s).
Code example:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this);
if (nfcAdapter == null) return; // NFC not available on this device
nfcAdapter.setBeamPushUris(new Uri[] {uri1, uri2}, this);
}
And that is it. Only one call per activity is necessary. The Android OS will automatically release its references to the Uri(s) and the Activity object when it is destroyed if you follow this pattern.
If your Activity wants to dynamically supply Uri(s), then set a callback using #setBeamPushUrisCallback
instead of using this method.
<p class="note">Do not pass in an Activity that has already been through Activity#onDestroy
. This is guaranteed if you call this API during Activity#onCreate
.
<p class="note">If this device does not support alternate transports such as Bluetooth or WiFI, calling this method does nothing.
<p class="note">Requires the android.Manifest.permission#NFC
permission.
Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.