- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我只是想创建一个同时实现指纹扫描和 NFC 读取的 Android 应用程序。在不同的时间都发挥着良好的作用。但如果我在指纹扫描仪打开时尝试扫描 NFC 卡,则会崩溃。NFC 卡正在读取,Android 设备将生成一个新的 Intent。此时将调用 onNewIntent() 方法。在 onNewIntent() 之后,控制将转到 onResume()。 onResume()中添加了指纹扫描代码。当控制到这里时,应用程序会崩溃。
@Override
public void onResume() {
// TODO Auto-generated method stub
super.onResume();
initDevice();
if (mFingerprint != null) {
tvInfo.setText("");
mFingerprint.startIdentification();
}
WriteModeOn();
}
public void initDevice() {
new InitTask().execute();
}
public class InitTask extends AsyncTask<String, Integer, Boolean> {
ProgressDialog mypDialog;
@Override
protected Boolean doInBackground(String... params) {
// TODO Auto-generated method stub
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return mFingerprint.init();
}
@Override
protected void onPostExecute(Boolean result) {
super.onPostExecute(result);
mypDialog.dismiss();
if (!result) {
// Toast.makeText(Read_RFIDActivity.this, "fail",
// Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(Read_RFIDActivity.this, "initialization success", Toast.LENGTH_SHORT).show();
}
tvInfo.setText("");
mFingerprint.startIdentification();
// start();
getEmpRealm();
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
mypDialog = new ProgressDialog(Read_RFIDActivity.this);
mypDialog.setCanceledOnTouchOutside(false);
mypDialog = ProgressDialog.show(Read_RFIDActivity.this, "Scanner Initializing...", "Please wait...", true, false);
}
}
Logcat
2020-02-24 15:46:36.523 19339-19339/com.oges.timefingerprint.attendance V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@54870d
2020-02-24 15:46:36.523 19339-19339/com.oges.timefingerprint.attendance V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@631a6c2
2020-02-24 15:46:36.526 19339-19339/com.oges.timefingerprint.attendance V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@74e3010
2020-02-24 15:46:36.526 19339-19339/com.oges.timefingerprint.attendance V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@b4f8709
2020-02-24 15:46:36.537 19339-19339/com.oges.timefingerprint.attendance I/DeviceAPI_Fingerprint: startIdentify =>runing=true
2020-02-24 15:46:36.537 19339-19339/com.oges.timefingerprint.attendance I/DeviceAPI_Fingerprint: what==iENROLLL && enrollCallBack==null
2020-02-24 15:46:36.604 19339-19435/com.oges.timefingerprint.attendance I/DeviceAPI_Fingerprint: morphoIdentify() end
2020-02-24 15:46:36.605 19339-19435/com.oges.timefingerprint.attendance E/AndroidRuntime: FATAL EXCEPTION: Thread-50
Process: com.oges.timefingerprint.attendance, PID: 19339
java.lang.NullPointerException: Attempt to get length of null array
at java.lang.StringFactory.newStringFromChars(StringFactory.java:211)
at com.rscja.deviceapi.FingerprintWithMorpho.morphoIdentify(FingerprintWithMorpho.java:917)
at com.rscja.deviceapi.FingerprintWithMorpho.access$19(FingerprintWithMorpho.java:897)
at com.rscja.deviceapi.FingerprintWithMorpho$ThreadIdentification.getData(FingerprintWithMorpho.java:735)
at com.rscja.deviceapi.FingerprintWithMorpho$ThreadIdentification.run(FingerprintWithMorpho.java:724)
2020-02-24 15:46:36.610 19339-19339/com.oges.timefingerprint.attendance D/DeviceAPI: pre finger init
2020-02-24 15:46:36.611 19339-19339/com.oges.timefingerprint.attendance E/DeviceAPI_Fingerprint: free() err:-1
2020-02-24 15:46:36.611 19339-19339/com.oges.timefingerprint.attendance E/freeeeeeeeeee: ------In Free()........
2020-02-24 15:46:36.731 19339-19339/com.oges.timefingerprint.attendance V/AsyncHttpRH: Progress 13 from 13 (100%)
2020-02-24 15:46:36.732 19339-19339/com.oges.timefingerprint.attendance I/Server Request:: {"code":1}
最佳答案
尝试一下我的工作代码。
首先将以下行添加到 onCreate()
mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
然后在您的调用 Activity onResume() 方法中添加以下行
PendingIntent pendingIntent = PendingIntent.getActivity(
this, 0, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
IntentFilter tagDetected = new IntentFilter(NfcAdapter.ACTION_TAG_DISCOVERED);
IntentFilter ndefDetected = new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED);
IntentFilter techDetected = new IntentFilter(NfcAdapter.ACTION_TECH_DISCOVERED);
IntentFilter[] nfcIntentFilter = new IntentFilter[]{techDetected, tagDetected, ndefDetected};
if (mNfcAdapter != null)
mNfcAdapter.enableForegroundDispatch(this, pendingIntent, nfcIntentFilter, null);
然后将以下代码行添加到 onPause()
if (mNfcAdapter != null)
mNfcAdapter.disableForegroundDispatch(this);
并在 list 中添加以下权限
<uses-permission android:name="android.permission.NFC" />
关于java - onNewintent() 执行时我的应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60373817/
我正在尝试使用 Intent 将推送数据从接收器传递到 Activity ,但它似乎不起作用。知道为什么吗?这是我的实现: AndroidManifest.xml
我只是想创建一个同时实现指纹扫描和 NFC 读取的 Android 应用程序。在不同的时间都发挥着良好的作用。但如果我在指纹扫描仪打开时尝试扫描 NFC 卡,则会崩溃。NFC 卡正在读取,Androi
我使用 GCM 成功发送了通知,但是当我点击它们时,没有任何反应。这是我的监听器中的代码,我可以验证它是否正在执行,但是当我在 HomeActivity 的 onCreate 和 onNewInten
我已经通过调用启动 Activity 开始了一个新的 Activity 。但是在 Activity 启动后,方法 onNewIntent 中的 finish() 没有被调用!!. WebActivit
我有一个用于通知的广播接收器。我的应用程序是一个 webkit,当用户点击通知时,我希望我的应用程序被打开并定向到某个 URL。一切似乎都很好,但我现在遇到了一个问题.... onNewIntent(
MainActivity 托管我所有的 fragment 。 当用户点击从 Google Cloud Messaging 收到的通知时,我需要显示一个特定 fragment 。 我的印象是我可以从 o
我看到了几种方法,我尝试了所有方法,但无法使其工作。我不知道为什么它如此复杂,在文档中看起来很简单!我想通过通知触发 OnNewIntent(用户在通知栏中单击它)。 目前我已经将我的 Activit
我发现了一些有趣的行为,但不知道为什么或如何绕过它。该 Activity 是单任务 Activity ,这意味着当 Activity 位于堆栈顶部时,onNewIntent() 用于 Activity
我的情况很奇怪。 有了一个应用程序,我决定从第一个应用程序的代码中创建另一个应用程序。 我复制了 .xml 文件,复制了 .java 文件,这样一切正常。 但是有一个巨大的问题:我的 onNewInt
我正在使用 singleTop Activity 通过 onNewIntent() 从搜索对话框接收 Intent . 我注意到 onPause() 在 onNewIntent() 之前被调用,然后它
我们的应用程序收到了我们无法解释的崩溃报告。 MyActivity 中发生崩溃,因为 Intent 中缺少预期的“额外”。我们的应用程序中有大量日志记录,这是发生这种情况时我们看到的生命周期回调序列:
我正在开发一个有 3 个选项卡的项目。第一个选项卡用于将信息写入 NFC 标签,其他 2 个选项卡用于从 NFC 标签读取信息。但是,我遇到了 OnNewIntent() 方法的问题。正如我从在线阅读
我有 2 个通知:一个用于传入消息,一个用于传出消息。单击 Notification 时,它会将 PendingIntent 发送给自己。我输入了一个额外的值来确定点击了哪个 Notification
我有 ActivityLanding,它调用名为 ActivityFolder 的 Activity 。在我使用 putExtra("folderId", "...") 的 Intent 中(我知道
这个问题在这里已经有了答案: 关闭10 年前。 Possible Duplicate: Displaying a Toast notification in Android framework 我有
在NFC Activity中编写onNewIntent(Intent intent)方法时,调用super.onNewIntent(intent)是否必要/正确? 我问是因为这个official ex
我有一个正在设置的通知 Intent intent = new Intent(ctx, MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVIT
在我的 Activity 的 onNewIntent() 方法中,getIntent().getData(); 始终为 null。它肯定会在转到 onCreate() 或任何其他生命周期函数之前转到此
我发现 2.3.4 和 4.2 之间 onNewIntent 调用的行为有所不同。 我有一个 launchMode=singleTask Activity 。根据我对 singleTask 工作原理的
创建一个集成 Twitter 的应用程序。我使用本教程: http://blog.blundell-apps.com/sending-a-tweet/ package com.blundell.tut
我是一名优秀的程序员,十分优秀!