Когда я поставил НФК тег близко к моему мобильному телефону я хочу, чтобы мое приложение, чтобы начать так что я добавил это в моем манифесте:Android NFC Перенаправление намерение
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data android:name="android.nfc.action.TECH_DISCOVERED" android:resource="@xml/nfc_tech_filter" />
Это прекрасно работает.
Если пользователь не вошел в систему я хочу, чтобы пользователь войти в систему, прежде чем он может передавать данные из тега, так что я добавил это в моем OnCreate моей мерой активности:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.sessionManager = new SessionManager(this);
this.sessionManager.login();
this.setContentView(R.layout.activity_measure);
this.nfcAdapter = NfcAdapter.getDefaultAdapter(this);
this.pendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
IntentFilter ndef = new IntentFilter(NfcAdapter.ACTION_TAG_DISCOVERED);
this.filters = new IntentFilter[] { ndef, };
this.techLists = new String[][] { new String[] { android.nfc.tech.NfcV.class.getName() } };
this.textViewYear = (TextView) findViewById(R.id.measure_textview_year);
this.textViewMonthDay = (TextView) findViewById(R.id.measure_textview_month_day);
this.textViewTime = (TextView) findViewById(R.id.measure_textview_time);
this.textViewGlucose = (TextView) findViewById(R.id.measure_textview_glucose);
new StartReadTask().execute();
}
Но после того, как пользователь вошел в систему, он перенаправляется к моему главному меню из-за этого реализации:
/**
*
* @param v
*/
@Override
public void onClick(View view) {
String username = this.textEditUsername.getText().toString();
String password = this.textEditPassword.getText().toString();
if(username.trim().length() > 0 && password.trim().length() > 0){
if(username.equals("test") && password.equals("test")){
this.sessionManager.createLoginSession("Test-Name", "Test-Email");
Intent intent = new Intent(this.getApplicationContext(), MainActivity.class);
this.startActivity(intent);
this.finish();
} else {
this.dialogAlertManager.showAlertDialog(LoginActivity.this, "Login failed..", "Username or Password is incorrect", false);
}
} else {
this.dialogAlertManager.showAlertDialog(LoginActivity.this, "Login failed..", "Please enter username and password", false);
}
}
«MainActivity» упоминается здесь мое главное меню. но я хочу, чтобы активность перенаправляла мою активность, но я не знаю, как я могу это сделать. после «нормальный» вход, без намерения nfc, мне нужно приложение для перенаправления в главное меню , но с намерением nfc я хочу, чтобы он перенаправлял активность меры.
Также, когда пользователь уже зарегистрирован, я хочу, чтобы данные тега были переданы немедленно. теперь, если я хочу передать данные, я должен держать тег близко к телефону , чтобы начать мероприятие с мерой, а затем отложить его и снова вернуться к передаче данных.
Как я могу сделать обе вещи?