Оценете темата:
  • 0 гласа - средно 0
  • 1
  • 2
  • 3
  • 4
  • 5

NFC - Инфо и трикове
#1

Здравейте,


Както може би знаете, NFC означава Near Field Communication
(освен ако не отворите погрешка nfc.bg - НАЦИОНАЛЕН ФИЛМОВ ЦЕНТЪР)

Полезна, кратка статия за NFC oт ardes.bg - Цък
За да няма сърдити - ето и линк в Wikipedia - Клик

Защо пускам тази тема?
Защото има няколко Xiaomi телефона с NFC, които на този етап са:
Mi 3, Mi 5, Mi 5s, Mi 5s plus, Mi Mix.
Oт гледна точка на притежател на Мi 5, сблъсъка ми с NFC технологията се оказа не това, което си мислех.
Знаех че има програмируеми тагове, на които може да се направи някакъв профил с определени настройки за определена среда, който се прилага след допир на телефона до тага.
Знаех също, че има телефони, които могат да настройват тагове и такива, които да не могат. Например на Galaxy S7 NFC-то не предлага пълната функционалност на тази технология както е при Mi 5.
Kaто изключим безконтактното разплащане  ще ви покажа за какво още би била полезна тази технология. А вече при платените версии на програмите в Play Store възможностите стават неограничени.

1. Имате нужда от NFC таг или тагове.
Най-евтино в България би трябвало да е тази оферта: http://www.securitybulgaria.com/bg/karti...idtech=411
13.56Мхц е честотата. Нищо не пречи да опитате да прочетете картата при покупка, за да сте сигурни, че е NFC

Аз използвам тези от Gearbest: http://www.gearbest.com/development-boar...tml?wid=21

2. от PlayStore можете да изтеглите NFC Tools и NFC Tasks - и двете приложения са от един и същ разработчик
https://play.google.com/store/apps/detai...kdev.wdnfc
https://play.google.com/store/apps/detai...v.nfctasks - тази програма е като добавка към първата, като разширява функционалността ѝ.
+ e aко имате Root достъп (нужен е най-малкото за включване изключване на GPS и мобилни данни, както и изпращане на команди до командния ред)

3. Трябва да включите NFC от настройките на телефона.
Намира се в Settings - More - NFC


Kратко видео, показващо работата на съществуващ таг, както и настройването  на нов такъв:


Заради риска на живото предаване не ми сработи автоматичното изчистване на приложенията, но за това ще говорим по-късно.
Това ми е реалната конфигурация към 22.04.2017-та 21:00
   



И сега по темата:

Първо, нещо за което вече съм писал инструкция (мисля, че само притежателите на Ми 5 ще го оценят):
Как да включим Fingerprint Wakeup чрез NFC.

КАК да настроим NFC TAG да превключва към GSM only и обратно на LTE Preferred

Ако намеря нещо друго полезно и интересно ще го споделя.
Ако вие ползвате NFC с каквато и да е функционалност - споделете вашите впечатления, трикове и настройки. Все за някой ще се окажат полезни

Благодаря за вниманието!
[-] 1 потребител изказва благодарност на suffer за това мнение:
  • Be6i4
Цитирай
Аксесоари
#2

само да се има предвид че по подразбиране NFC не работи когато телефона е изключен и трябва да се "събуди" и отключи.
има и настройка в която това винаги е включено, но не се препоръчва от гледна точка на сигурността.

Galaxy Nexus -> Sony Z1 Compact -> Meizu M1 Note->One Plus X -> Xiaomi mi6->Samsung a70->S21FE 
Цитирай
#3

Прав си, затова на клиповете винаги светвам дисплея преди да се доближа до ТАГ-а
Цитирай
#4
Exclamation 

КАК да настроим NFC TAG да превключва към GSM only и обратно на LTE Preferred(изисква ROOT права):

За да постигна целта си използвах тази тема:
http://stackoverflow.com/questions/37848...de-lte-gsm
и ако трябва да сме още по-конкретни:


Цитат:After a lot of research, this was the working solution I found for Marshmallow.

The Preferred Network Mode numbers are found: https://android.googlesource.com/platfor.../ril.h#228

1 is GSM Only

11 is LTE Only

adb wait-for-devices
adb root
adb wait-for-devices
adb shell settings list global | grep pref

This returned to me both "preferred_network_mode" and "preferred_network_mode1"

adb shell settings put global preferred_network_mode 1
adb shell settings put global preferred_network_mode1 1
adb shell stop ril-daemon
adb shell start ril-daemon


В TAG-а ще се запишат само последните 4 реда.
И то след внимателно проучване. Тук е моментът да отправя едно предупреждение:
Внимавайте много какво правите във *#*#4636#*#* -> Phone information 1/2!!!
НЕ ИЗБИРАЙТЕ МРЕЖИ, КОИТО НЕ ЗНАЕТЕ КАКВО ОЗНАЧАВАТ И НЕ СИ ИГРАЙТЕ С RADIO OFF/ON.

Aко имате начин да си направите BACKUP на "QCN" файла през QPST - не е лошо да си имате такъв.
Друг вариант за BACKUP е през TWRP/ZCX Recovery да си запазите дял "EFS".

При моето проучване установих, че GSM Only наистина е "1", но след това предпочитам LTE Preferred (LTE/TD-SCDMA/UMTS), което е "20" в моя списък (говорим за MI 5, Android 7).
       

Kaто част от проучването можете да вземете предвид  тези редове:
През компютъра:

Код:
adb shell
su
settings list global | grep pref  


През телефона (oтваряте произволен терминал):

Код:
su
(потвърждавате, ако ви поиска разрешение за ползване на Root)
settings list global | grep pref  
(ще излезе списък с предпочитаните мрежи)

При мен това, което излезе в терминала, реално се разминаваше с работещата част, но все пак ще покажа, за да видите как работят нещата
   

Разликата между това, което връща "grep pref" и това, което ще пишем в NFC tools е че терминала връща:
Код:
preffered_network_mode1=20
preffered_network_mode2=20

a при въвеждане на командната линия в приложението ще пишем, както е описано в Stackoverflow:
Код:
settings put global preferred_network_mode 1 (или 20, ако искаме да си върнем настройката по подразбиране)
settings put global preferred_network_mode1 1 (или 20, ако искаме да си върнем настройката по подразбиране)


Не мога да кажа дали е ясно или неясно. Винаги съм готов да отговарям на въпросите ви по темата




Обобщавам:
  • Нужен ни е NFC Tag
  • програмите от google play store - NFC Tools, NFC Tasks
  • Root
  • Познания по списъка с мрежи в *#*#4636#*#* -> Phone information 1/2 за вашия телефон
1. Отваряме NFC Tools
2. Четем празен таг (или отиваме на OTHER и избираме Erase tag, за да изтрием пълен или ненужен такъв)
3. Отиваме на TASKS
4. Add a task
5. Root
6. Execute a command line
7. В зависимост от това за кой път влизаме в тази опция въвеждаме:
- settings put global preferred_network_mode 1 (за GSM Only на първата карта)
- settings put global preferred_network_mode1 1 (за GSM Only на втората карта)
или
- settings put global preferred_network_mode 20 (за настройка по подразбиране (LTE Preferred) на първата карта)
- settings put global preferred_network_mode1 20 (за настройка по подразбиране (LTE Preferred) на втората карта)
8. Натискаме ОК
9. Аdd a task
10. Various
11. Sleep
12. Задаваме евентуална пауза между командите (в моя случай е 2 секунди)
13. Натискаме ОК и повтаряме стъпки от 4 до 8 докато сложим нужните редове (в случая 2 реда с 2 секунди пауза между тях).
14. По желание повтаряте стъпки 9 до 13, за да добавите още пауза между следващите 2, задължителни команди, които ще въведем в Root-> Execute a command line
15. Add task
16. Root
17. Execute a command line
18. въвеждаме:
Цитат:stop ril-daemon

(с тази команда ще спре за малко обхвата на телефона)
19. ОК
20. Поставяме пауза по стъпки от 9 до 13
21. Add task
22. Root
23. Execute a command line
23. въвеждаме:
Цитат:start ril-daemon

(с тази команда ще се стартират наново мрежите, като вече трябва да сме в 2G(пак зависи много каква е вашата настройка))
24. ОК
25. Write (и приближавате тага до гърба на телефона, за да се запишат данните)

Сега да ви покажа все пак и един трик.
Имате опция да си задавате условия и според тях да се изпълнява един или друг блок от код в таг-а.
Това се постига чрез:
TASKS - Add a task - Conditional blocks.
Oттам избирате отваряща скоба за условието (на мен ми е най-удобна "Condition: Scan counter"(в зависимост дали четете таг-а за първи или за втори път изпълнява различен набор от команди)).
 - След като сте избрали вашето условие добавяте след него, например стъпките от 1 до 24, като избирате, отново например: 2те карти да минат в GSM Only.
 - След стъпка 24 отваряте отново TASKS - Add a task - Conditional blocks, Избирате ELSE и добавяте отново стъпките от 1 до 24, но този път с опцията по подразбиране.
- След това отваряте за последен път TASKS - Add a task - Conditional blocks и избирате END.
- Записвате таг-а (Write).

Получавате следното:

Ако тагът се чете за първи път
 - промени карта 1 на GSM only
 - 2 секунди пауза
 - промени карта 2 на GSM only
 - 2 секунди пауза
 - Спри всички мобилни мрежи
 - 2 секунди пауза
 - Стартирай всички мобилни мрежи
В противен случай
 - промени карта 1 на опцията по подразбиране
 - 2 секунди пауза
 - промени карта 2 на опцията по подразбиране
 - 2 секунди пауза
 - Спри всички мобилни мрежи
 - 2 секунди пауза
 - Стартирай всички мобилни мрежи
КРАЙ

Tова нагледно изглежда по този начин:
   

Aко ви допада повече като вариант можете и да поекспериментирате малко и тагът да работи по един начин през седмицата, и по втори начин през weekend-a.

За финал: ето как работи гореописаното на телефона ми:

[-] 1 потребител изказва благодарност на suffer за това мнение:
  • Be6i4
Цитирай




Потребители разглеждащи темата: 1 гост(и)