要使用Android Beam特性需满足以下要求:
1.对于大文件的传输只能运行在Android4.1(API Level 16)或以上的系统上;2.要传输的文件必须是位于外部存储空间(external storage)中,且对外具有可读性;
3.必须为要传输的文件提供一个file URI,由FileProvider.getUriForFile()方法生成的URI无效。
一、发送文件:
在manifest文件中添加权限:
uses-permission android:name="android.permission.NFC" />
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE" />
指明你的app需要使用带有NFC硬件的设备:
<uses-feature
android:name="android.hardware.nfc"
android:required="true" />
public class MainActivity extends Activity {
...
NfcAdapter mNfcAdapter;
// Flag to indicate that Android Beam is available
boolean mAndroidBeamAvailable = false;
...
@Override
protected void onCreate(Bundle savedInstanceState) {
...
// NFC isn't available on the device
if (!PackageManager.hasSystemFeature(PackageManager.FEATURE_NFC)) {
/*
* Disable NFC features here.
* For example, disable menu items or buttons that activate
* NFC-related features
*/
...
// Android Beam file transfer isn't supported
} else if (Build.VERSION.SDK_INT <
Build.VERSION_CODES.JELLY_BEAN_MR1) {
// If Android Beam isn't available, don't continue.
mAndroidBeamAvailable = false;
/*
*