Java 当设备启动时,如何阻止NfcAdapter.ACTION\u NDEF\u发现变为真?
我的应用程序在设备启动时启动(Nexus 7)。当我的设备启动时,Java 当设备启动时,如何阻止NfcAdapter.ACTION\u NDEF\u发现变为真?,java,android,nfc,android-5.0-lollipop,Java,Android,Nfc,Android 5.0 Lollipop,我的应用程序在设备启动时启动(Nexus 7)。当我的设备启动时,if(action.equals(NfcAdapter.action\u NDEF\u DISCOVERED))变为true。然后,if中的代码崩溃,因为其目的不是真正的操作,而是启动 我可以放一个试试catch,然后它就不会崩溃了。然而,NFC将不起作用。要使NFC正常工作,必须关闭并重新打开应用程序 是否有方法检查if(action.equals(NfcAdapter.action\u NDEF\u DISCOVERED))但
if(action.equals(NfcAdapter.action\u NDEF\u DISCOVERED))
变为true。然后,if
中的代码崩溃,因为其目的不是真正的操作,而是启动
我可以放一个试试catch
,然后它就不会崩溃了。然而,NFC将不起作用。要使NFC正常工作,必须关闭并重新打开应用程序
是否有方法检查if(action.equals(NfcAdapter.action\u NDEF\u DISCOVERED))
但忽略引导?这真的很烦人,因为if正在检查NFC未启动
@Override
public void onResume()
{
super.onResume();
// NFC code.
Intent intent = getIntent();
String action = intent.getAction();
PendingIntent pi = this.createPendingResult(0x00A, new Intent(), 0);
nfcAdapter.enableForegroundDispatch(this, pi, null, null);
try
{
// NFC transfer. Receiving message here.
if(action != null && action.equals(NfcAdapter.ACTION_NDEF_DISCOVERED))
{
Parcelable[] parcelables = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
NdefMessage inNdefMessage = (NdefMessage) parcelables[0];
NdefRecord[] inNdefRecords = inNdefMessage.getRecords();
NdefRecord NdefRecord_0 = inNdefRecords[0];
String inMsg = new String(NdefRecord_0.getPayload());
Toast.makeText(getApplicationContext(), "Toasty: "+inMsg + action.toString(), Toast.LENGTH_LONG).show();
textInfo.setText(inMsg);
}
}
catch(Exception e)
{
Log.e("NFC", e.getMessage());
}
}
这是检查引导的代码
public class BootManager extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED))
{
Intent i = new Intent(context, Login_Activity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
}
在登录\u活动中,这是否会改变意图?
@Override
protected void onNewIntent(Intent intent)
{
setIntent(intent);
}
您是如何注册应用程序以在启动时启动的?您是否为启动操作注册了广播接收器,然后启动活动?@MichaelRoland是的,我注册了。然后请也显示该代码。@MichaelRoland我已经发布了。如果您有任何想法,请告诉我,您之前在相关问题中的回答非常有用。上面的onResume()
code是否来自Login\u活动
?您是否在onCreate
或onStart
中修改启动意图(例如使用setIntent()
)?