blob: 644e3122774b3ead4723d7f4b1e992f4b9b19ade [file] [log] [blame]
/*
* Copyright (C) 2010 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.nfc;
import android.annotation.SystemService;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
import android.os.Build;
/**
* High level manager used to obtain an instance of an {@link NfcAdapter}.
* <p>
* Use {@link android.content.Context#getSystemService(java.lang.String)}
* with {@link Context#NFC_SERVICE} to create an {@link NfcManager},
* then call {@link #getDefaultAdapter} to obtain the {@link NfcAdapter}.
* <p>
* Alternately, you can just call the static helper
* {@link NfcAdapter#getDefaultAdapter(android.content.Context)}.
*
* <div class="special reference">
* <h3>Developer Guides</h3>
* <p>For more information about using NFC, read the
* <a href="{@docRoot}guide/topics/nfc/index.html">Near Field Communication</a> developer guide.</p>
* </div>
*
* @see NfcAdapter#getDefaultAdapter(android.content.Context)
*/
@SystemService(Context.NFC_SERVICE)
public final class NfcManager {
private final NfcAdapter mAdapter;
/**
* @hide
*/
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
public NfcManager(Context context) {
NfcAdapter adapter;
context = context.getApplicationContext();
if (context == null) {
throw new IllegalArgumentException(
"context not associated with any application (using a mock context?)");
}
try {
adapter = NfcAdapter.getNfcAdapter(context);
} catch (UnsupportedOperationException e) {
adapter = null;
}
mAdapter = adapter;
}
/**
* Get the default NFC Adapter for this device.
*
* @return the default NFC Adapter
*/
public NfcAdapter getDefaultAdapter() {
return mAdapter;
}
}