小编Pra*_*arg的帖子

NFC 服务在一段时间后失效的可能原因是什么?

我们使用 NFC 标签作为进出的停车票。在每个入口处,标签上都会写入一些数据,而在出口处,该数据会验证车辆的出口。

\n\n

部分车辆进出后,NfcService失效,智能手机无法检测到NFC标签。设备需要重新启动才能重新启动 NfcService,然后设备再次开始正常工作。

\n\n

此错误是随机出现的,我们无法在开发环境中重现此错误,但我们在停车场出入口安装的设备上多次观察到此问题。

\n\n

\n\n

当我们调试这个问题时,我们能够以某种方式管理上述日志。

\n\n

我们尝试了不同的更改,例如使用enableReaderMode而不是enableForegroundDispatch,但问题仍然存在。

\n\n
public void enableReaderMode() {\n    try {\n    Log.d("WTF", "Enabling reader mode");\n    NfcAdapter nfc = NfcAdapter.getDefaultAdapter(this);\n\n    if (nfc != null) {\n        int flags = NfcAdapter.FLAG_READER_NFC_A ;\n\n            nfc.enableReaderMode(this, new NfcAdapter.ReaderCallback() {\n                @Override\n                public void onTagDiscovered(Tag tag) {\n                    runOnUiThread(new Runnable() {\n                        @Override\n                        public void run() {\n                            Log.d("WTF", "Tag discovered");\n                            String uid = ByteArrayToHexString(tag.getId());\n                            Toast.makeText(MainActivity.this, getString(R.string.message_tag_detected), Toast.LENGTH_SHORT).show();\n                            Ndef ndef = Ndef.get(tag);\n\n                            if (isNFCDialogDisplayed) {\n\n                                if (isWrite) {\n\n …
Run Code Online (Sandbox Code Playgroud)

android nfc android-service ndef deadobjectexception

6
推荐指数
1
解决办法
3890
查看次数

Paho MQTT cleanSession 设置为 false 但未接收消息

我正在为一个项目测试MQTT。当客户端连接时,我还能够接收有关我的客户端订阅的主题的消息。我已将 QoS 设置为 1,并将 cleanSession 设置为 false。但是当我的客户端再次连接时,我无法接收发送到订阅主题的消息。在我的应用程序中,几乎所有工作都是由辅助服务完成的。

这是我的代码

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <service
        android:name=".MqttHelperService"
        android:enabled="true"
        android:exported="true" />

    <!-- MqttService -->
    <service android:name="org.eclipse.paho.android.service.MqttService" />
</application>
Run Code Online (Sandbox Code Playgroud)

MainActivity.java

package com.prateek.mqtttest;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); …
Run Code Online (Sandbox Code Playgroud)

java android messagebroker mqtt paho

2
推荐指数
1
解决办法
4309
查看次数