Я создал новый класс для тегов nf c, потому что мне приходится использовать функцию nf c в различных действиях. Проверка доступности функции nf c работает. Я реализовал функцию обнаружения тега nf c в методах onNewIntent
и onResume
. Как я могу использовать эту функцию в моем классе OrderActivity.java
или в других моих действиях? С нетерпением жду ваших ответов.
NFCReaderWriter. java
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.nfc.NfcAdapter;
import android.widget.Toast;
import androidx.appcompat.app.ActionBar;
public class NFCReaderWriter extends Activity {
private Context context;
private NfcAdapter nfcAdapter;
public NFCReaderWriter(Context context) {
this.context = context;
nfcAdapter = NfcAdapter.getDefaultAdapter(context);
}
/**
* Checks for nfc functionality
* @return boolean the status of the functionality
*/
public boolean checkFunctionality(){
if(nfcAdapter != null && nfcAdapter.isEnabled()) {
return true;
}
else {
return false;
}
}
@Override
protected void onNewIntent(Intent intent) {
Toast.makeText(context, "NFC intent received", Toast.LENGTH_LONG).show();
super.onNewIntent(intent);
}
@Override
protected void onResume() {
Intent intent = new Intent(context, context.getClass());
intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
IntentFilter[] intentFilters = new IntentFilter[]{};
nfcAdapter.enableForegroundDispatch((Activity) context, pendingIntent, intentFilters, null);
super.onResume();
}
@Override
protected void onPause() {
nfcAdapter.disableForegroundDispatch((Activity) context);
super.onPause();
}
}
OrderActivity. java
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.app.Dialog;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.gms.common.util.NumberUtils;
import com.google.firebase.auth.FirebaseAuth;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Locale;
import static android.widget.Toast.*;
public class OrderActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_order);
nfcReaderWriter = new NFCReaderWriter(this);
if(nfcReaderWriter.checkFunctionality()) {
System.out.println("works");
}
else {
System.out.println("no nfc");
}
}
}