我的最终目标是从头到尾学习非接触式卡交易中的数据流,因为我正在制作一个接受非接触式卡的Android应用程序。 在第一个屏幕中,我有一个用于输入金额的文本框和一个用于接受它的按钮,它将进入下一个屏幕。 在下一个屏幕中,我有一个显示数量的按钮和一个按钮(Tap) 应该启动广播监听器(为了测试我试图捕获AIRPLANE_MODE的广播)。 现在我的问题是每当我按下Tap按钮时,应用程序说 - 不幸的是app已停止。 在调试中我可以看到 -
引起:android.content.ActivityNotFoundException:无法找到 显性活动类 {com.example.myfirstapp / com.example.myfirstapp.AskToTapCard};有你 在AndroidManifest.xml中声明了此活动?
但是,AskToTapCard类扩展自BroadcardListener。我现在期待的是等待的应用程序,我将切换到airlane模式和应用程序来检测它并记录。 我进行了更改以使其从AppCompatActivity扩展并显示虚拟页面,它显示。如何解决这个问题? In是一个完整的内部项目,我可以提供任何源文件,让我知道我需要哪一个。下图可以帮助您访问我的项目的大小。
答案 0 :(得分:2)
错误说:Activity
但BroadcastReceiver
不是Intent intent = new Intent(context, AskToTapCard.class);
context.startActivity(intent);
,而是Intent intent = new Intent(context, AskToTapCard.class);
context.sendBroadcast(intent);
。
所以,即使你没有展示你的代码(你应该,这是ppl低估你的一个可能原因),我只能假设你有这样的东西:
{{1}}
这正是错误告诉你的。你告诉系统运行一个活动,但你给系统一个BroadcastReceiver。一旦理解了错误,解决方案很简单:
{{1}}