标签: android-applicationrecord

NFC标签检测不会调用onNewIntent并且它是从主活动启动的

我是NFC新手.我尝试连接到NFC并将文本数据从设备共享到另一台设备.

我在两台设备和一台设备上安装我的应用程序,打开我的应用程序,然后开始将设备点击到另一台设备,以便通过Beam传输数据.

在另一台设备上,由于Beam交互,我的应用程序打开.但是,活动是使用默认的MAIN意图操作启动的,而不是使用TAG_DISCOVERED(或类似的NFC意图)启动的.每次它做同样的事情.

此外,它没有调用该onNewIntent()方法.我试图打电话onNewIntentonCreate,但在那种情况下,意图行动仍然是主要的.我希望能够获得Beam交互的NFC意图.那么请你告诉我哪里出错了?

在这段代码中,我没有共享数据.我首先需要标签.

表现:

<activity android:name="com.framentos.hellonfc.MainActivity"
        android:clearTaskOnLaunch="true"
        android:label="@string/app_name"
        android:launchMode="singleTop"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.nfc.action.NDEF_DISCOVERED" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.nfc.action.TECH_DISCOVERED" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.nfc.action.TAG_DISCOVERED" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <meta-data
            android:name="android.nfc.action.TECH_DISCOVERED"
            android:resource="@xml/nfc_tech_filter" />
</activity>
Run Code Online (Sandbox Code Playgroud)

Java代码:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    ctx = this;
    // startHandler();
    _handler = new Handler();
    Button btnWrite = (Button) findViewById(R.id.button);
    message …
Run Code Online (Sandbox Code Playgroud)

android nfc android-beam nfc-p2p android-applicationrecord

11
推荐指数
1
解决办法
7278
查看次数

NFC中的AAR记录:有效负载在哪里?

根据此答案,并通过测试验证,当您使用Android Beam推送包含AAR记录的NFC消息时,接收设备将启动AAR中指定的应用程序的MAIN/ LAUNCHERactivity.

MAIN/ LAUNCHER Intent不包含NfcAdapter.EXTRA_NDEF_MESSAGES额外的.因此,如果您使用AAR,我们遇到的所有麻烦的数据都会丢失.

有没有办法在这种情况下获取触发应用程序的NFC消息?

如果答案是"否",那么AAR的用例是什么?当接收设备上不存在所需的应用程序(启动Play商店)时,我可以看到它可能会有所帮助,但是一旦安装了应用程序,AAR就会阻止任何将数据从一个设备传送到另一个设备的尝试,这是有点像NFC的背后.

谢谢!

android nfc ndef android-applicationrecord

8
推荐指数
1
解决办法
2827
查看次数

使用NDEF Android应用程序记录(AAR)获取NFC标签

我正在研究NFC应用程序.要启动我的应用程序,我正在使用带有AAR NDEF记录的NDEF标记.

这很好用.但现在我想直接用app阅读标签内容.我怎样才能做到这一点?

(它已经有效,当我从手机中取出标签并再次触摸它时,但我想取消这一步.)

表现:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="nfctagscanner.mobileapps.lt.nfctagscanner" >
    <uses-feature android:name="android.hardware.nfc" android:required="true"/>
    <uses-permission android:name="android.permission.NFC" />

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

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


            </intent-filter>


        </activity>
        <activity
            android:name=".NFCScanActivity"
            android:label="@string/app_name" >
            <intent-filter>

                <action android:name="android.nfc.action.NDEF_DISCOVERED" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:scheme="nfctagscanner.mobileapps.lt.nfctagscanner" android:host="ext"
                    android:pathPrefix="/android.com:pkg" />
            </intent-filter>
        </activity>
    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

而我只想获得NDEF_DISCOVERED意图.但我总是得到action.MAIN/category.LAUNCHER意图与我的调试器.

任何帮助将不胜感激.我基于此做了我的工作:Android/NFC:在没有新Intent的情况下在onCreate()中获取标签

android nfc intentfilter ndef android-applicationrecord

7
推荐指数
1
解决办法
4614
查看次数

Android NFC在启动应用程序时传递单个参数

我想使用NFC标签启动应用程序.我使用Android应用程序记录(AAR)使用Android应用程序记录(AAR),使用NFC标签启动Android应用程序,使用额外数据或使用NDEF_DISCOVERED/ TECH_DISCOVEREDintent过滤器.但是,在通过NFC事件启动时,如何将NFC标签(例如某些文本)中的数据传递给我的活动?

我已经阅读了NFC基础知识,但据我所知,它似乎想要实现一种读取标签的机制,当我真的不想在标签打开应用程序后重新读取标签,但是相反,我只想要同时传入的数据.

此外,这些机制似乎允许应用程序在标记启动后读取标记.换句话说,我担心如果有人在应用程序打开后再点击标签,那么标签将再次被读取(这是我想要的).

其次,我如何创建这样的NDEF消息?

tags android nfc ndef android-applicationrecord

4
推荐指数
1
解决办法
3344
查看次数

检测活动是否正常启动或读取NFC标签后(没有任何提示)

如果使用Android应用程序记录(AAR),则意图操作是

android.intent.action.MAIN
Run Code Online (Sandbox Code Playgroud)

所以我不知道这是正常发射还是nfc发射.

无论活动是正常启动还是在读取nfc标签之后,我都需要在活动中做一些不同的事情.如果手机上有另一个具有相同意图过滤器的应用程序,我也不想显示选择应用程序的提示,例如:

<intent-filter>
    <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <data android:mimeType="text/plain" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

java android nfc ndef android-applicationrecord

3
推荐指数
1
解决办法
1199
查看次数

Android AAR + Intent过滤器:澄清

基于Android NFC doc提供的此文档:

如果标记包含AAR,则标记调度系统将按以下方式调度:

  1. 尝试使用意图过滤器正常启动活动.如果与意图匹配的活动也与AAR匹配,则启动活动.

  2. 如果为intent过滤的Activity与AAR不匹配,如果多个Activities可以处理intent,或者没有Activity处理intent,请启动AAR指定的应用程序.

  3. 如果没有应用程序可以从AAR开始,请转到Google Play以根据AAR下载应用程序.

从这些方面我明白,如果我为活动指定了一个intent过滤器,A并且收到的NDEF消息与过滤器匹配A,A即使NDEF消息包含A属于的app的AAR记录,也会启动.

在我的情况下,A只有在没有AAR记录时才开始.一旦我添加AAR记录,活动A就不会启动:当检测到NDEF消息时,将启动AAR中指示的应用程序的主要活动.

" 如果活动[...]也与AAR相匹配 ",它们意味着什么?

有没有人可以提供提示?

android nfc intentfilter ndef android-applicationrecord

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