デバイスでカードエミュレーションが有効になっているかどうかを確認する必要があります。これは一部のデバイスではなく、すべてのデバイスのために働くように見えますAndroid APIメソッドのUnsupportedOperationException CardEmulation.getInstance()
boolean isDefault = CardEmulation
.getInstance(NfcAdapter.getDefaultAdapter(this))
.isDefaultServiceForCategory(
new ComponentName(this, MyPaymentService.class),
CardEmulation.CATEGORY_PAYMENT);
:私は1つの方法hereを見つけました。
たとえば、Samsung GT-I9300I(Android 4.4搭載)にはNFCモジュールがありますが、設定にタップアンドペイオプションは表示されません。
私のアプリは、私は次のエラーを取得する、そのデバイス上で実行されます:
E/CardEmulation: This device does not support card emulation 09-26 16:41:13.592 2625-2625/? E/AndroidRuntime: FATAL EXCEPTION: main Process: com.android.settings, PID: 2625 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.settings/com.android.settings.nfc.PaymentDefaultDialog}: java.lang.UnsupportedOperationException at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2441) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2500) at android.app.ActivityThread.access$900(ActivityThread.java:171) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1309) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:146) at android.app.ActivityThread.main(ActivityThread.java:5679) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.UnsupportedOperationException at android.nfc.cardemulation.CardEmulation.getInstance(CardEmulation.java:159) at com.android.settings.nfc.PaymentBackend.(PaymentBackend.java:53) at com.android.settings.nfc.PaymentDefaultDialog.onCreate(PaymentDefaultDialog.java:57) at android.app.Activity.performCreate(Activity.java:5582) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2405) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2500) at android.app.ActivityThread.access$900(ActivityThread.java:171) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1309) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:146) at android.app.ActivityThread.main(ActivityThread.java:5679) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107) at dalvik.system.NativeStart.main(Native Method)
しかし、the documentationによると、CardEmulation
はAPIレベル19(アンドロイド4.4)以降で使用可能です。
だから誰も私はこの例外を得ている理由を説明できますか?どうすればこの問題を解決できますか?
大感謝を! –