diff --git a/cmds/svc/src/com/android/commands/svc/NfcCommand.java b/cmds/svc/src/com/android/commands/svc/NfcCommand.java index 020ca3387555059aef6e0622baa560109c8b4f89..ee2af129d4001fbb23298c3a8b15b7fb8dd534e7 100644 --- a/cmds/svc/src/com/android/commands/svc/NfcCommand.java +++ b/cmds/svc/src/com/android/commands/svc/NfcCommand.java @@ -16,10 +16,11 @@ package com.android.commands.svc; +import android.app.ActivityThread; import android.content.Context; -import android.nfc.INfcAdapter; -import android.os.RemoteException; -import android.os.ServiceManager; +import android.nfc.NfcAdapter; +import android.nfc.NfcManager; +import android.os.Looper; public class NfcCommand extends Svc.Command { @@ -42,27 +43,26 @@ public class NfcCommand extends Svc.Command { @Override public void run(String[] args) { - INfcAdapter adapter = INfcAdapter.Stub.asInterface( - ServiceManager.getService(Context.NFC_SERVICE)); - + Looper.prepareMainLooper(); + ActivityThread.initializeMainlineModules(); + Context context = ActivityThread.systemMain().getSystemContext(); + NfcManager nfcManager = context.getSystemService(NfcManager.class); + if (nfcManager == null) { + System.err.println("Got a null NfcManager, is the system running?"); + return; + } + NfcAdapter adapter = nfcManager.getDefaultAdapter(); if (adapter == null) { System.err.println("Got a null NfcAdapter, is the system running?"); return; } - - try { - if (args.length == 2 && "enable".equals(args[1])) { - adapter.enable(); - return; - } else if (args.length == 2 && "disable".equals(args[1])) { - adapter.disable(true); - return; - } - } catch (RemoteException e) { - System.err.println("NFC operation failed: " + e); + if (args.length == 2 && "enable".equals(args[1])) { + adapter.enable(); + return; + } else if (args.length == 2 && "disable".equals(args[1])) { + adapter.disable(true); return; } - System.err.println(longHelp()); }