2013-09-17 5 views
0

Я новичок в тегах NFC и заинтересован в том, как это работает. Я купил тег NFC и могу записать студента в тег. Теперь моя проблема заключается в том, как передать идентификатор студента на веб-службу php и проверить, оплатил ли этот ученик его/ее питание, прежде чем вы сможете перейти в столовую, когда вы сканируете свои студенческие карточки в моем приложении.NFC-тег и php

Пожалуйста, помогите мне, как я могу это сделать. ниже - это то, что я сделал.

//reading the tag 
private String readText(NdefRecord record) throws UnsupportedEncodingException { 

     byte[] payload = record.getPayload(); 

     // Get the Text Encoding 
     String textEncoding = ((payload[0] & 128) == 0) ? "UTF-8" : "UTF-16"; 

     // Get the Language Code 
     int languageCodeLength = payload[0] & 0063; 

     // Get the Text 
     return new String(payload, languageCodeLength + 1, payload.length - languageCodeLength - 1, textEncoding); 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     if (result != null) { 
     //show the student id in a textedit 
      mTextView.setText(result); 

      //pass variable to the server and get contents. I want to pass the student id to the method 
      getstudentinfo(result); 
     } 
    } 

     void getstudentinfo(String studID) { 

     //get connection to the server using http request 
     httpclient=new DefaultHttpClient(); 

     httppost= new HttpPost("http://myip/getStudentBl.php?studID="+ studID); 

     try{ 

     response = getThreadSafeClient().execute(httppost); 
     ResponseHandler<String> responseHandler = new BasicResponseHandler(); 
     final String response = httpclient.execute(httppost, responseHandler); 

     //checking the response and info the user 
     runOnUiThread(new Runnable() { 
      public void run() { 

      dialog.dismiss(); 
      } 
      }); 

     //if the user is found 
     if(response.equalsIgnoreCase("Student Found")){ 
      runOnUiThread(new Runnable() { 
      public void run() { 
      //Toast.makeText(MainActivity.this,"Saved Successfull", Toast.LENGTH_SHORT).show(); 
       stdBalance.setText("Student Balance " + response); 
      } 
      }); 
      //show the dashboard screen 
      startActivity(new Intent(MainActivity.this, MainActivity.class)); 
     }else if(response.equalsIgnoreCase("No Record")){ 
      //show error results 
      showAlert(); 
     } 
     //end try catch 
     }catch(Exception e){ 
      dialog.dismiss(); 
      System.out.println("Exception : " + e.getMessage()); 
      } 

    } 
+0

Итак, как должен работать код, и какова проблема с вашим кодом, или что отсутствует? – Meier

ответ

0

В моем понимании, с андроида читателями как минимум, если тег держит URL, он будет автоматически загружать браузер и идти к URL (не с просьбой, если вы хотите, чтобы открыть приложение, ни, если вы хотите чтобы перейти к URL-адресу). Вы должны просто поместить student_id в строку запроса и использовать его на странице.

0

Похоже здесь, чтобы иметь Exemple от реализации ЦНК: Github repo

В основной деятельности вам придется изменить

@Override 
    public void ndefDataRead(String ndefData) { 
    demoTextView.setText(ndefData); 
} 

для вызова getstudentinfo (Строка studID) методы, и это может работать

Смежные вопросы