`
jacky-zhang
  • 浏览: 315968 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

enable or disable NFC

    博客分类:
  • nfc
 
阅读更多
This code works on API 15, haven't checked it against other verions yet
public boolean changeNfcEnabled(Context context, boolean enabled) {
    // Turn NFC on/off
    final boolean desiredState = enabled;
    mNfcAdapter = NfcAdapter.getDefaultAdapter(context);

    if (mNfcAdapter == null) {
        // NFC is not supported
        return false;
    }

    new Thread("toggleNFC") {
        public void run() {
            Log.d(TAG, "Setting NFC enabled state to: " + desiredState);
            boolean success = false;
            Class<?> NfcManagerClass;
            Method setNfcEnabled, setNfcDisabled;
            boolean Nfc;
            if (desiredState) {
                try {
                    NfcManagerClass = Class.forName(mNfcAdapter.getClass().getName());
                    setNfcEnabled   = NfcManagerClass.getDeclaredMethod("enable");
                    setNfcEnabled.setAccessible(true);
                    Nfc             = (Boolean) setNfcEnabled.invoke(mNfcAdapter);
                    success         = Nfc;
                } catch (ClassNotFoundException e) {
                } catch (NoSuchMethodException e) {
                } catch (IllegalArgumentException e) {
                } catch (IllegalAccessException e) {
                } catch (InvocationTargetException e) {
                }
            } else {
                try {
                    NfcManagerClass = Class.forName(mNfcAdapter.getClass().getName());
                    setNfcDisabled  = NfcManagerClass.getDeclaredMethod("disable");
                    setNfcDisabled.setAccessible(true);
                    Nfc             = (Boolean) setNfcDisabled.invoke(mNfcAdapter);
                    success         = Nfc;
                } catch (ClassNotFoundException e) {
                } catch (NoSuchMethodException e) {
                } catch (IllegalArgumentException e) {
                } catch (IllegalAccessException e) {
                } catch (InvocationTargetException e) {
                }
            }
            if (success) {
                Log.d(TAG, "Successfully changed NFC enabled state to "+ desiredState);
            } else {
                Log.w(TAG, "Error setting NFC enabled state to "+ desiredState);
            }
        }
    }.start();
    return false;
}

This requires 2 permissions though, put them in the manifest:
 <!-- change NFC status toggle -->
    <uses-permission android:name="android.permission.NFC" />
    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />

The NFC button's state switches accordingly when the code is used, so there are no issues when doing it manually in the seetings menu.
the fact that this ofcourse will only work on rooted devices! One can't write secure settings or settings unless the app is installed as a system app.
分享到:
评论

相关推荐

    ulps_enable_disable.zip

    标题 "ulps_enable_disable.zip" 暗示了这是一个与启用或禁用ULPS相关的软件配置包。ULPS,全称Ultra Low Power State(超低功耗状态),是计算机硬件,特别是显卡中的一种节能技术。它允许设备在不活动时进入一种极...

    Windows 系统资源(Hardware,Driver)Scan,Enable,Disable

    devcon.exe enable &lt;设备ID&gt; ``` 将`&lt;设备ID&gt;`替换为要启用的设备的ID,这个ID可以在设备管理器中找到。 3. 禁用硬件或驱动程序: ``` devcon.exe disable &lt;设备ID&gt; ``` 同样,替换`&lt;设备ID&gt;`为要禁用的设备...

    enable disable home

    enable and disable "HOME" button in android 4.0.3 above the version 4.0.3,we should modify the frameworks detail is described in the Enable_Disable_Home.rar

    IPV4,IPV6的Enable和Disable批处理命令脚本文件

    ### IP版本控制脚本知识点详解 #### 一、概述 在计算机网络中,IP协议(Internet Protocol)是用于标识网络中的设备并使这些设备能够互相通信的重要协议之一。随着技术的发展,IPv4(Internet Protocol version 4...

    ulps-enable-disable

    在Windows 10操作系统中,ULPS(Ultra-Low Power Standby)是一种节能技术,旨在降低设备在待机状态下的功耗。然而,有时ULPS可能会导致系统出现一些不期望的问题,比如开机黑屏。本篇文章将深入探讨如何通过手动和...

    GoHo Network Adapter Enable - Disable:需要轻松启用和禁用网络适配器吗?-开源

    《GoHo Network Adapter Enable - Disable:一款开源的网络适配器管理工具》 在现代计算机系统中,网络适配器是连接到网络的关键组件。它允许计算机与互联网或其他网络设备进行通信。有时,用户可能需要临时禁用...

    .net WPF 实现图标按钮,点击图标enable/disable,并触发相应功能

    WPF实现图标按钮的enable 和disable功能,单击图标disable该功能,图标也跟着变化,再单击一次,图标和功能enable. .net framework 和.net core框架都能用,该Demo使用的是.net core的框架,修改引入的依赖项就可以...

    KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定

    Knockout是一个以数据模型(data model)为基础的能够帮助你创建富文本,响应显示和编辑用户界面的...这篇文章介绍了KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定的相关知识,感兴趣的朋友一起看看吧

    android 实现Nfc数据读取和写入

    2. **开启和关闭NFC**: 在Android应用中,可以使用`NfcAdapter.enable()`和`NfcAdapter.disable()`方法来开启和关闭NFC功能。但要注意,这可能需要用户权限,因此在执行这些操作前应检查是否已获得相应的权限。 3. ...

    adb,支持adb disable-verity命令,解锁system分区

    `adb disable-verity` 是一个特定的adb命令,它涉及到Android系统的安全特性——verity模式。 verity模式是Android为了增强设备的安全性而引入的一种机制。它通过校验系统分区的哈希值来确保系统文件未被篡改,从而...

    F5 GTM IControl 配置管理工具

    --serversetenable Set Server Enable Or Disable,eg.(--serversetenable ServerName,0/1) 1=ENABLE 0=DISABLE --serveriplist Get Server Box Address,eg.(--serveriplist ServerName) --serveripadd Add A Ip ...

    Android NFC功能DEOM

    1. **开启NFC**:在应用中,可以通过调用`NfcAdapter.enable()`开启NFC功能。 2. **监听NFC事件**:使用`NfcAdapter.enableForegroundDispatch()`注册前台服务,监听NFC标签的接近事件。 3. **解析NDEF消息**:当...

    android NFC开发实例

    例如,使用`enable()`方法打开NFC,`disable()`方法关闭NFC。 3. **读取NDEF标签**:使用`NfcAdapter`的`getTag()`方法获取当前与设备交互的NFC标签。然后,通过`Ndef`或`NdefFormatable`接口解析标签上的NDEF消息...

    Android nfc开发示例

    3. **开启和关闭NFC**: 开发者可以通过`NfcAdapter.enable()`和`NfcAdapter.disable()`方法来开启或关闭NFC功能。此外,可以在AndroidManifest.xml中设置`&lt;uses-feature&gt;`标签来声明应用需要使用NFC功能。 4. **...

    disable/enable adb codes

    标题“disable/enable adb codes”指的是如何禁用或启用ADB服务,这在特定场景下可能是必要的,例如保护设备安全、避免不必要的数据传输或者在系统更新时防止意外干扰。本文将详细介绍如何禁用和启用ADB,并探讨其...

    NFC.rar_NFC代码_android 上的NFC应用_nfc tutorials_安卓 nfc

    - **开启和关闭NFC**:使用`NfcAdapter`类的`enable()`和`disable()`方法来开启或关闭设备的NFC功能。 - **读取NDEF(NFC Data Exchange Format)标签**:使用`NdefFormatable`或`Ndef`接口读取和写入NDEF格式的...

    androd nfc 录入数据demo

    4. **开启和关闭NFC功能**:在应用中,你需要使用`NfcAdapter.enable()`和`NfcAdapter.disable()`方法来控制NFC功能的开启和关闭。 5. **写入NDEF消息**:使用`NdefRecord`类创建NDEF记录,并通过`NdefMessage`类...

    无 adb disable-verity 命令的adb应用程序

    此adb中无adb disable-verity命令,如果在cmd中输入以上命令会报 /system/bin/sh: disable-verity: not found 的错误。具体可看本人的文章 ”/system/bin/sh: disable-verity: not found 的解决方案“ 【使用方式】...

    安卓NFC相关-androidnfc开发demo.rar

    - 开启和关闭NFC:`NfcAdapter.enable()` 和 `NfcAdapter.disable()` 分别用于开启和关闭NFC功能。 - 设置NDEF消息:使用`NdefMessage`类创建包含一个或多个记录的消息。 - 接收NDEF事件:通过注册`NfcAdapter....

    Android代码-DualSim Reminder

    schedule an alarm that reminds you to enable or disable work SIM at shceduled times (for example at 9am when you go to work and at 6pm when you go home) a widget lets you open Dual SIM settings ...

Global site tag (gtag.js) - Google Analytics