如何在 android 中进行不刷新的 NFC 扫描?
How to NFC scan without refresh in android?
我正在尝试在 android 中添加 NFC 标签。
我的 activity 有一个 webview 及其在 onCreate() 中的集合 url。
NFC打标签时,NDEF信息可以正常获取,但是页面地址没有维护
我该如何解决?
@Override
public void onCreate(Bundle savedInstanceBundle){
super.onCreate(savedInstanceBundle);
setContentView(R.layout.activity_test);
this.webview = findViewbyId(R.id.webview);
this.webview.loadUrl("https://www.abcblarblar.com/");
this.nfcAdapter = NfcAdapter.getDefaultAdapter(this);
}
@Override
public void onResume(){
super.onResume();
Intent intent = getIntent();
if (NfcAdapter.ACTION_TAG_DISCOVERED == intent.getAction()) {
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
...
}
}
manifest.xml
<activity
android:name="com.xxx.xxx.xxx.NFCActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize" >
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
我猜(因为您没有显示有关如何读取 NFC 标签的代码)您正在使用 enableForegroundDispatch
?
此方法会在 Android OS 读取 NFC 卡时暂停您的应用程序。
如果这是原因,有两种可能的解决方案:-
1) 确保您的应用程序处理暂停并保存它的 InstanceState(因为它有可能被终止并重新启动)或者您正在 onResume
中执行导致此问题的操作。
2) 使用 enableReaderMode
https://developer.android.com/reference/android/nfc/NfcAdapter#enableReaderMode(android.app.Activity,%20android.nfc.NfcAdapter.ReaderCallback,%20int,%20android.os.Bundle) 读取卡,因为通过这种读取 NFC 卡的方式,您的应用程序不会暂停,而是在您的应用程序的单独线程中创建回调
我正在尝试在 android 中添加 NFC 标签。 我的 activity 有一个 webview 及其在 onCreate() 中的集合 url。 NFC打标签时,NDEF信息可以正常获取,但是页面地址没有维护
我该如何解决?
@Override
public void onCreate(Bundle savedInstanceBundle){
super.onCreate(savedInstanceBundle);
setContentView(R.layout.activity_test);
this.webview = findViewbyId(R.id.webview);
this.webview.loadUrl("https://www.abcblarblar.com/");
this.nfcAdapter = NfcAdapter.getDefaultAdapter(this);
}
@Override
public void onResume(){
super.onResume();
Intent intent = getIntent();
if (NfcAdapter.ACTION_TAG_DISCOVERED == intent.getAction()) {
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
...
}
}
manifest.xml
<activity
android:name="com.xxx.xxx.xxx.NFCActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize" >
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
我猜(因为您没有显示有关如何读取 NFC 标签的代码)您正在使用 enableForegroundDispatch
?
此方法会在 Android OS 读取 NFC 卡时暂停您的应用程序。
如果这是原因,有两种可能的解决方案:-
1) 确保您的应用程序处理暂停并保存它的 InstanceState(因为它有可能被终止并重新启动)或者您正在 onResume
中执行导致此问题的操作。
2) 使用 enableReaderMode
https://developer.android.com/reference/android/nfc/NfcAdapter#enableReaderMode(android.app.Activity,%20android.nfc.NfcAdapter.ReaderCallback,%20int,%20android.os.Bundle) 读取卡,因为通过这种读取 NFC 卡的方式,您的应用程序不会暂停,而是在您的应用程序的单独线程中创建回调