グローバルモデル含め、多くのAndroid機種には「NFC」機能が搭載され、非接触で専用のカードやタグを読み取ることができます。
ただ近付けるだけで動作するため、意図しない状況で勝手にNFCが働いてしまう欠点もあります。
とはいえ、NFCが必要なアプリを起動する度に機能のオン / オフを手動操作で切り替えるのは面倒ですよね。
そこで本記事では、特定アプリ以外ではAndroidのNFC機能を自動で無効にする方法を紹介します。
具体的にはAndroid向け自動化アプリ「MacroDroid」を使って、特定条件下で起動するマクロ(タスクの自動化)設定をします。
photo by John Jones
AndroidでNFCを自動的に無効化する方法
NFC対応機種を互いに近付けると勝手に認識するため、誤動作に繋がるデメリットがあります。
ボクが実際に困っていたケースを紹介すると、下記のような2つのデバイスに関して、
- iPhone 8 Plus:Apple PayのSuicaを設定中
- Nexus 6P:常にNFCをオンに設定中
iPhone 8 PlusとNexus 6Pを互いに近付けると、
iPhone側で勝手にApple PayのSuicaが動作し、画面が切り替わることがあります。

YouTube視聴中にSuicaが勝手に起動した例。
強制的にiPhone 8 Plus側の作業が中断されるため、対策としてはNexus 6P側で普段からNFCをオフにする選択肢もありますが、NFCが必要なアプリを起動する度にオン / オフ切り替えるのは面倒でした。
そこで今回は、「NFCを使うアプリの起動」を検知して、AndroidのNFC機能を自動で切り替える設定を「MacroDroid」で行います。
具体例として、ボクはNexus 6Pで「Edyチャージアプリ」を使う際にNFC機能が必要となるので、

「Edyチャージアプリ起動時・終了時に、AndroidのNFCをオン / オフ切り替える設定」を例に說明をします。
手順①:自動化アプリを入手する
まず、Androidに自動化アプリ「MacroDroid」をインストールします。
本アプリの基本情報や使い方について、詳細は関連記事【MacroDroid – Androidでマクロを組んで作業を自動化! デザインもクールで使いやすい無料アプリ】で解説しています。

さらに今回は「NFC機能を変更」というAndroidシステム中枢に関わる高度な設定を行うため、追加で「ADB hack済み」条件を満たす必要があります。
具体的にはパソコンでadbコマンドの環境を用意した上、Androidへ下記コマンドを流します。
adb shell pm grant com.arlosoft.macrodroid android.permission.WRITE_SECURE_SETTINGS
adb shell pm grant com.arlosoft.macrodroid android.permission.CHANGE_CONFIGURATION
内容が複雑なので、詳細は関連記事【MacroDroidの高度設定をroot不要で解放する方法! ADB hackでAndroidの自動化を強化しよう】で解説しています。

以上の準備ができたら、MacroDroidを起動して「マクロの追加」へ進みます。
大まかなマクロ作成の流れを整理すると、今回は下記2種類のマクロを設定し、同時に動かします。
【マクロ①】
- トリガー:アプリの起動 / 終了(Edyチャージアプリを開いたら)
- アクション:NFC機能の設定(NFCをオンにする)
- 条件:任意(設定しなくてもOK)
【マクロ②】
- トリガー:アプリの起動 / 終了(Edyチャージアプリを閉じたら)
- アクション:NFC機能の設定(NFCをオフにする)
- 条件:任意(設定しなくてもOK)
さっそく設定してみましょう。
手順②:トリガーを設定する【マクロ①】
まず、1つ目のマクロ(Edyチャージアプリを開いたらNFCをオンにする)についてトリガーを設定します。
トリガー候補一覧より「アプリケーション」→「アプリの起動/終了」と選び、
「アプリの起動時」より対象アプリを選びます。

今回は例としてEdyチャージアプリにチェックを入れた。
ここで初回のみ「アクセシビリティ設定」が求められるので、画面に従って「ユーザー補助」設定にてMacroDroidを選び、
権限を有効にします。
以上で「アプリの起動時:Edyチャージアプリ」のトリガー設定ができました。
画面を右にスワイプし、「アクション」画面へ移ります。
手順③:アクションを設定する【マクロ①】
続いて、1つ目のマクロ(Edyチャージアプリを開いたらNFCをオンにする)についてアクションを設定します。
アクション候補一覧より「Connectivity」→「NFCの有効化 / 無効化」と進み、
「NFC ON」にチェックを入れます。
以上で「NFCをオンにする」のアクション設定ができました。
画面を右にスワイプし、「条件」画面へ移ります。
手順④:条件を設定する(任意)【マクロ①】
そして、1つ目のマクロ(Edyチャージアプリを開いたらNFCをオンにする)について条件を設定します。
「条件」は任意なので設定しなくてもマクロ作成は完成できますが、「トリガー」とは別の前提条件を追加したい場合に設定します。
例えば「充電中はNFCのオン / オフ切り替えをしない」としたい場合なら、条件候補一覧より「バッテリー/電源」→「電源の接続」と選び、
「電源が接続されていない」にチェックを入れればOKです。
任意設定なので本例では「条件」は何も設定せず、としました。
右下の「✓チェック」アイコンをタップします。
手順⑤:マクロ名称を決めて完了!【マクロ①】
最後にマクロ①の名前を決めます。この後もう1つマクロを作成するため、区別しやすい名称にすると良いでしょう(後から名前の変更はできます)。
作成したマクロはアプリトップ画面左上の「マクロ」より確認ができ、内容の編集や設定の有効化 / 無効化の切り替えも可能です。
手順⑥:同様の手順でマクロ②を作成する
以上ここまでが、マクロ①(Edyチャージアプリを開いたらNFCをオンにする)についての作成手順となりますが、全く同様の手順で逆の動作をするマクロ②(Edyチャージアプリを閉じたらNFCをオフにする)を作成します。
- トリガー:「アプリの起動/終了」より「アプリの終了時:Edyチャージアプリ」
- アクション:「NFCの有効化 / 無効化」より「NFCをオフにする」
- 条件:設定なし
以上で対となる2つのマクロを作成できました。
実際に試してみる
2つのマクロが完成したら、実際に動くか試してみましょう。
動作検証:2つのマクロを動かす
例えば下記のようなマクロを有効化した状態で、
【マクロ①】
- トリガー:アプリの起動 / 終了(Edyチャージアプリを開いたら)
- アクション:NFC機能の設定(NFCをオンにする)
- 条件:任意(設定しなくてもOK)
【マクロ②】
- トリガー:アプリの起動 / 終了(Edyチャージアプリを閉じたら)
- アクション:NFC機能の設定(NFCをオフにする)
- 条件:任意(設定しなくてもOK)
まず普段からAndroidのNFC機能をオフにしておきます。
機種やOSバージョンによって異なりますが、例えばNexus 6P(Android 8.1)なら「設定」→「接続済みの端末」へ進み、「NFC」トグルをタップして無効にすればOK。
この状態でEdyチャージアプリを開くと、自動でNFCがオンへ切り替わりました!

左の「NFCがオンの時」の画面が表示されれば、切り替えに成功したと判断できる。
その後、Edyチャージアプリを閉じると、自動的にNFCがオフに戻ります。
以上の通り、作成した2つのマクロはどちらも正常に動作しました。
NFCはオフ→オンの切り替え時、機能が立ち上がるのに少し時間がかかるため、Edyチャージアプリを開いた後に数秒待つ必要がありますが、おおむねやりたいコトは実現できました!
うまく動作しない場合
冒頭で記載の通り、今回設定する「NFC機能を変更」は「rootまたはADB hack済み」が条件のアクションとなるため、adbコマンドが実行されているか改めて確認して下さい。

「rootまたはADB hack済み」条件を満たせていない状態だと、アクションの部分でエラー表示が出ます。
補足:そのほかMacroDroidで設定できるマクロまとめ
本記事で紹介したマクロ以外にも、MacroDroidの便利な設定は無限に存在します。
例えば、自宅や会社周辺のGPS検出可否をトリガーに、Wi-Fi機能のオン / オフ切り替え設定を自動化できます(2種類のマクロを作成し、同時に動かします)。
【マクロ①】
- トリガー:場所のトリガー(自宅周辺に入ったら)
- アクション:Wi-Fi設定(Wi-Fiを有効化)
- 条件:任意(設定しなくてもOK)
【マクロ②】
- トリガー:場所のトリガー(自宅周辺を出たら)
- アクション:Wi-Fi設定(Wi-Fiを無効化)
- 条件:任意(設定しなくてもOK)

また、Bluetoothデバイス(例:イヤホン / スマートウォッチ)の紛失防止のため、下記マクロでBluetoothの切断を検知し通知表示できます。
- トリガー:Bluetoothイベント(デバイスの切断を検知したら)
- アクション:通知を表示(デバイスの切断を警告)
- 条件:任意(設定しなくてもOK)

それ以外にも多数のマクロ設定例を、関連記事【MacroDroidでオススメのマクロ集まとめ! ルーティン作業はアクション/トリガーで自動化しよう】で解説しています。

〆:NFCオフを自動化しよう!
以上、AndroidのNFCを自動で無効にする方法! 特定アプリごとオンオフを切り替えて誤作動を防ごう の説明でした。
NFCオン / オフ切り替えを頻繁に操作しているなら、今回紹介したMacroDroidのマクロは大変便利ですよ。
ぜひ、お試しあれ。
コメント