2016-09-04 5 views
0

Я столкнулся с проблемой блокировки тега NFC. Мой код, подобный нижеприведенному:Как сделать тег NFC доступным только для чтения в Android?

public void makeReadOnly(Tag tag) { 
    if (tag == null) { 
     Log.e("tag", "Tag Is Null"); 
     return; 
    } 
    try { 

     Ndef ndef = Ndef.get(tag); 
     if (ndef != null) { 
      Log.e("eeeeeee111111", "New1111"); 
      ndef.connect(); 

      if(ndef.canMakeReadOnly()){ 
       ndef.canMakeReadOnly(); 
       Log.e("Read Only", "Read Only"); 
      } 
      Log.e("Lock.......", "Lock......."); 

     // ndef.canMakeReadOnly(); 
      ndef.close(); 
     // Log.e("22222.......", "2222......."); 

     } 



    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     Log.e("EEEEEEEEEEEEE", e.toString()); 
     e.printStackTrace(); 
    } 

} 

Обнаружили ошибку. Но не блокировка тега NFC.

ответ

0

canMakeReadOnly() просто возвращает, если тег может быть сделан только для чтения. Используйте makeReadOnly(), чтобы на самом деле это сделать (угадайте, это простой надзор).

Заменить следующее:

if(ndef.canMakeReadOnly()){ 
    ndef.canMakeReadOnly(); 
    Log.e("Read Only", "Read Only"); 
} 

С этим:

if(ndef.canMakeReadOnly()){ 
    ndef.makeReadOnly(); 
    Log.e("Read Only", "Read Only"); 
} 
Смежные вопросы