1

私はディスカバリーnfcでAndroidアプリを作っています。NFCタグを見つけたら、アプリケーション(デフォルトのAndroidアプリと自分のアプリ)を選択する必要があります。

Androidシステム用のアプリで何ができるのか、どのアプリを開いているのか尋ねないでください。私の考えは、デフォルトでアプリを起動することです。

<activity android:name=".Test">
        <intent-filter>
            <action android:name="android.nfc.action.TAG_DISCOVERED"/>
           <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
4

2 に答える 2

0

Androidでは、アプリケーション自体をデフォルトハンドラーとして設定することはできず、複数の選択肢があり、デフォルトが指定されていない場合は、代わりにユーザーがアクションを選択することに依存しているようです。

そのアプリケーション選択ボックスには、「デフォルトでこのアプリケーションを使用する」という行に沿って何かを示すチェックボックスが必要です。毎回アプリケーションを使用する場合は、ユーザーがそのチェックボックスをオンにする必要があります。

于 2011-06-30T21:37:33.440 に答える
0

インテントフィルターの「data」要素を使用して、カスタムMIMEタイプを定義します。

<intent-filter>
    <action android:name="android.nfc.action.NDEF_DISCOVERED" />
    <data android:mimeType="application/com.example.package" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

このインテントフィルターは、起動する任意のアクティビティに追加できます。これを、起動フィルターと一緒にランチャーアクティビティに追加のフィルターとして追加することもできます。

その場合、次のコードを使用して、アクティビティがNFCによって起動されたか、起動アイコンによって起動されたかを判断できます。

Intent intent = getIntent();
if (intent.getType() != null && intent.getType().equals("application/com.example.package")) {
// app is launched from NFC
} else {
// app is launched from launcher icon
}
于 2012-10-24T10:18:38.437 に答える