NdefRecord.createApplicationRecord()在开发人员和发布签名之间不起作用

时间:2015-02-11 15:12:03

标签: java android nfc

我发送以下nfc记录以发送到另一台设备:

    NdefRecord extRecord = new NdefRecord(
            NdefRecord.TNF_EXTERNAL_TYPE, new String("de.juwei.myapp:event").getBytes(), new byte[0], payload);
    NdefMessage msg = new NdefMessage(
            new NdefRecord[] { extRecord
                    /**
                     * The Android Application Record (AAR) is commented out. When a device
                     * receives a push with an AAR in it, the application specified in the AAR
                     * is guaranteed to run. The AAR overrides the tag dispatch system.
                     * You can add it back in to guarantee that this
                     * activity starts when receiving a beamed message. For now, this code
                     * uses the tag dispatch system.
                     */
                    ,NdefRecord.createApplicationRecord("de.juwei.myapp")
            });
    return msg;

发送设备正在使用开发者签名,接收设备来自官方商店,带有已签名的应用程序。

应用程序正确启动(因为createApplicationRecord),但它没有接收数据。意图似乎是空的......

如果我将带有开发者签名的应用程序安装到两个设备上,则相同的代码可以正常工作。另一方正在按预期接收数据。

为什么不同的应用程序签名之间存在差异?如何解决此问题?

祝你好运, 尔根

1 个答案:

答案 0 :(得分:0)

没关系......它始终是程序员:我将错误的(旧)签名apk上传到设备。因此代码中没有任何变化,应用程序无法识别打算。多么简单的错误 - 花了我很多年才找到那个简单的东西!