我正在构建一个android应用程序,它将使用ndeftools库读取nfc标记。
当我在应用程序中读取标签时,它会最小化,并由内置的android标签阅读器处理。是否可以停止应用程序暂停,让它在文本视图中显示内容。
注意:tagreaderactivity只是一个扩展的nfcreaderactivity
这是我目前的代码:
import org.ndeftools.Message;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.seaf.nfc.TagReaderActivity;
public class DemoNFCActivity extends TagReaderActivity {
protected LinearLayout linearLayout;
private static final String DEMO = DemoNFCActivity.class.getName();
protected TextView feature;
protected TextView state;
protected TextView data;
@Override
public void onCreate(Bundle savedInstanceState) {
this.setContentView(R.layout.layout_demo_nfc);
feature = (TextView) findViewById(R.id.textView1);
state = (TextView) findViewById(R.id.textView2);
data = (TextView) findViewById(R.id.textView3);
super.onCreate(savedInstanceState);
}
@Override
protected void readNdefMessage(Message message) {
// [INSERT SOLUTION HERE] :D
//
// if (data != null) {
//
// data.setText(message.toString());
// data.setBackgroundColor(getResources().getColor(R.color.green_light));
//
// }
}
@Override
protected void onNfcFeatureFound() {
super.onNfcFeatureFound();
if (feature != null) {
feature.setText(getString(R.string.nfc_feature_true));
feature.setBackgroundColor(getResources().getColor(R.color.green_light));
}
}
@Override
protected void onNfcFeatureNotFound() {
super.onNfcStateDisabled();
if (feature != null) {
feature.setText(getString(R.string.nfc_feature_false));
feature.setBackgroundColor(getResources().getColor(R.color.red_light));
}
}
@Override
protected void onNfcStateEnabled() {
super.onNfcStateEnabled();
if (state != null) {
state.setText(getString(R.string.nfc_state_true));
state.setBackgroundColor(getResources().getColor(R.color.green_light));
}
}
@Override
protected void onNfcStateDisabled() {
super.onNfcStateDisabled();
if (state != null) {
state.setText(getString(R.string.nfc_state_false));
state.setBackgroundColor(getResources().getColor(R.color.red_light));
}
}
}
2条答案
按热度按时间qvsjd97n1#
nfc子系统首先调用onpause(),然后调用onnewintent(),然后调用onresume()。您不需要解决这个问题,因为整个过程非常简短。
这里的问题似乎是你的前景模式没有被激活。请参阅defaultnfcreaderactivity中的oncreate()方法,并注意对的调用
这是因为你不一定要随时接受传入的nfc流量。
eulz3vhy2#
你需要注册前台调度系统(如果你的应用程序是android4.4+,也可以选择读卡器模式系统)。有关如何使用前台调度系统的更多信息,请参阅android nfc文档。
关于ndeftools库
NfcDetectorActivity
你应该做(或适应)你想做的事。