Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
intent android.settings.NFC\u支付设置的ActivityNotFoundException_Android_Nfc - Fatal编程技术网

intent android.settings.NFC\u支付设置的ActivityNotFoundException

intent android.settings.NFC\u支付设置的ActivityNotFoundException,android,nfc,Android,Nfc,我正在尝试使用以下代码打开NFC Tap&Pay页面上的设置: startActivity(new Intent(Settings.ACTION_NFC_PAYMENT_SETTINGS)); 在使用Android 7.1.2在LG Nexus 5X上进行测试时,我收到了以下故障: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.settings.NFC_P

我正在尝试使用以下代码打开NFC Tap&Pay页面上的设置:

startActivity(new Intent(Settings.ACTION_NFC_PAYMENT_SETTINGS));
在使用Android 7.1.2在LG Nexus 5X上进行测试时,我收到了以下故障:

android.content.ActivityNotFoundException:
 No Activity found to handle Intent { act=android.settings.NFC_PAYMENT_SETTINGS }
  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1809)
  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1523)
  at android.app.Activity.startActivityForResult(Activity.java:4228)
  at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(SourceFile:50)
  at android.support.v4.app.FragmentActivity.startActivityForResult(SourceFile:79)
  at android.app.Activity.startActivityForResult(Activity.java:4186)
  at android.support.v4.app.FragmentActivity.startActivityForResult(SourceFile:859)
  at android.app.Activity.startActivity(Activity.java:4525)
  at android.app.Activity.startActivity(Activity.java:4493)
  at ...
嗯,这个崩溃可以用try-catch轻松处理,但更重要的是,当我手动打开这个NFC设置时,代码就像一个符咒一样工作——没有崩溃。为什么?有人对这种行为有什么解释吗

文件[1]中写道:

在某些情况下,匹配的活动可能不存在,因此请确保 防止这种情况

有没有可能他们的意思是“你必须手动打开设置,然后才能正常工作”

[1]

来自:

操作\u NFC\u付款\u设置 在API级别19中添加

字符串操作\u NFC\u付款\u设置

活动行动: 显示NFC点击和支付设置

这显示允许用户配置点击和支付设置的UI

在某些情况下,可能不存在匹配的活动,因此请确保对此进行防护

输入:无

输出:无

常量值:“android.settings.NFC\u支付\u设置”

您的设备不支持或至少无法处理操作\u NFC\u支付\u设置

更新1 由于您的minAPILevel为19,该操作应得到android RT的支持。但是,该操作与NFC设置菜单之间的链接可能未建立或无法建立,尽管该菜单存在

尝试使用
Settings.ACTION\u NFC\u Settings
作为操作,并查看它是否启动。 如果是这样的话,我希望会有一个实现问题

为了防止出现例外情况,我建议使用:

PackageManager packageManager = getActivity().getPackageManager();
if (intent.resolveActivity(packageManager) != null) {
    startActivity(<your intent>);
} else {
    Log.d(TAG, "No application available to handle requested action.");
}
PackageManager-PackageManager=getActivity().getPackageManager();
if(intent.resolveActivity(packageManager)!=null){
星触觉();
}否则{
Log.d(标记“没有可用于处理请求操作的应用程序”);
}

请参阅:以获取信用和参考。

不支持此项,这是不正确的。也许现在无法处理,但我在问为什么?当我手动打开设置时,它会工作。不过,它会向用户显示一条消息“转到设置,查找Tap&Pay或移动支付或您的设备供应商创建的任何内容”。您使用哪种MinSDKVersion和TargetSDKVersion?您能否提供一个实际的代码示例“围绕调用”,即调用startActivity的位置?minSDK=19,targetSDK=25。代码在onClickListener中(使用Butterknife)。只有这一行代码,没有更多了。@JerabekJakub请参阅更新。我也会尝试重新构建这个问题,因为我有相同的Android版本DI无法再复制该问题,因为我已经手动执行了。它不起作用,所以我不能检查你的建议-(