如何在我们的应用程序中使用 NFC,我们如何知道该设备支持 NFC?
How to use NFC in our application and how can we know that device supports NFC?
我已经了解了一些与 NFC 相关的主题。但是我没有找到使用它或使用 NFC 的清晰简单的方法?
另一个问题是我们如何识别设备是否支持NFC,
有没有代码?
它与蓝牙有何不同?
我们将不胜感激所有建议。
检查设备是否支持 NFC:
NfcManager manager = (NfcManager) context.getSystemService(Context.NFC_SERVICE);
NfcAdapter adapter = manager.getDefaultAdapter();
if (adapter != null && adapter.isEnabled()) {
//Yes NFC available
}else{
//Your device doesn't support NFC
}
这是 NFC 的全部内容:https://developer.android.com/guide/topics/connectivity/nfc/index.html
如果您有 root 设备,您可以轻松切换 NFC 模式:
public static boolean powerNfc(boolean isOn, Context context) {
boolean success = false;
NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(context);
if (nfcAdapter != null) {
Class<?> NfcManagerClass;
Method setNfcEnabled;
try {
NfcManagerClass = Class.forName(nfcAdapter.getClass().getName());
setNfcEnabled = NfcManagerClass.getDeclaredMethod(isOn ? "enable" : "disable");
setNfcEnabled.setAccessible(true);
success = (Boolean) setNfcEnabled.invoke(nfcAdapter);
} catch (ClassNotFoundException e) {
} catch (NoSuchMethodException e) {
} catch (IllegalArgumentException e) {
} catch (IllegalAccessException e) {
} catch (InvocationTargetException e) {
}
}
return success;
}
您还需要添加权限写入安全设置。
已经测试过了
我已经了解了一些与 NFC 相关的主题。但是我没有找到使用它或使用 NFC 的清晰简单的方法?
另一个问题是我们如何识别设备是否支持NFC, 有没有代码?
它与蓝牙有何不同?
我们将不胜感激所有建议。
检查设备是否支持 NFC:
NfcManager manager = (NfcManager) context.getSystemService(Context.NFC_SERVICE);
NfcAdapter adapter = manager.getDefaultAdapter();
if (adapter != null && adapter.isEnabled()) {
//Yes NFC available
}else{
//Your device doesn't support NFC
}
这是 NFC 的全部内容:https://developer.android.com/guide/topics/connectivity/nfc/index.html
如果您有 root 设备,您可以轻松切换 NFC 模式:
public static boolean powerNfc(boolean isOn, Context context) {
boolean success = false;
NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(context);
if (nfcAdapter != null) {
Class<?> NfcManagerClass;
Method setNfcEnabled;
try {
NfcManagerClass = Class.forName(nfcAdapter.getClass().getName());
setNfcEnabled = NfcManagerClass.getDeclaredMethod(isOn ? "enable" : "disable");
setNfcEnabled.setAccessible(true);
success = (Boolean) setNfcEnabled.invoke(nfcAdapter);
} catch (ClassNotFoundException e) {
} catch (NoSuchMethodException e) {
} catch (IllegalArgumentException e) {
} catch (IllegalAccessException e) {
} catch (InvocationTargetException e) {
}
}
return success;
}
您还需要添加权限写入安全设置。
已经测试过了