هم اکنون عضو شوید

ورود

فراموشی گذرواژه

گذروازه خود را فراموش کردید ؟

ورود

عضو شوید

با عضویت در سایت از امکانات فوق العاده بهرمنده خواهید شد.

دوره آموزش برنامه نویسی اندروید
آموزش خواندن و نوشتن NFC Tag در برنامه نویسی اندروید

آموزش خواندن و نوشتن NFC Tag در برنامه نویسی اندروید

سلام دوستان امیدوارم حالتان خوب باشد در این سری از آموزش برنامه نویسی اندروید به آموزش خواندن و نوشتن NFC Tag در برنامه نویسی اندروید می پردازیم قبلتر آموزشی کلی در این رابطه قرار داده بودیم که به صورت کلی Nfc Tag را مورد تشریح و استفاده قرار دادیم در این آموزش به خواندن و نوشتن Nfc Tag خواهیم پرداخت در ادمه با ما همراه باشید.

موارد مورد استفاده در Nfc Tag چیست ؟

به طور کلی برای نوشتن و دریافت مقدار دادی بسیار کم مثل url یا اعداد

برای اجرای برنامه ی خاص

برای باز کردن قفل (مورد استفاده در مترو)

یک کلید امنیتی برای یک اپلیکیشن

ابتدا Nfc گوشی خود را روشن کنید !

برای کار کردن با Nfc لازم است تا دسترسی آن را به AndroidManifest.xml اضافه کنید.

باید وارد فایل Build.gradle شده و آن را به شکل زیر تغییر دهید چون از متودهای Lambda جاوا ۸ استفاده می کنیم باید حتما تغییر کند.

جاهایی که باید اضافه کنید با تگ here مشخص شده است.

بروی دکمه sync کلیک کنید.

وارد فایل String.xml شده و کدهای زیر را قرار دهید.

نام های بالا در ادامه برنامه استفاده خواهند شد.

در بخش layout دو دکمه و یک Edittext برای ورود داده قرار دهید همانند زیر

در ادامه ما یک فرگمنت داریم که اطلاعات خوانده شده در آن نمایش داده می شود بخش layout آن همانند زیر است نام آن برابر با fragment_read.xml است.

یک فرگمنت دیگر برای نوشتن به نام fragment_write.xml ایجاد کرده و کدهای زیر را در آن قرار دهید.

 

حالا باید Interface درست کنیم این Interface ها بعدا مورد استفاده قرار می گیرند.

 

مثل دوتا Event کار خواهند کرد.

کدهای مربوط به فایل NFCReadFragment که برای خواندن تگ Nfc مورد استفاده قرار میگیرد همانند زیر است.

یک متود به نام initViews داریم که View های ما رو find می کند. چون داریم از فرگمنت استفاده می کنیم در بخش onAttach (این بخش قبلا در بخش فرگمنت ها توضیح داده شده است) یک Instance از MainActivty در Listener میریزیم اگر یادتان باشد در Interface یک void به نام onDialogDisplayed که آن را صدا می زنیم (دو متود onDialogDisplayed و onDialogDismissed در ManiActivity تعریف شده اند و با صدا زدن آنها عملی انجام می شود ).

یک void دیگر به نام onNfcDetected وجود دارد که تشخیص میدهد Nfc موجود است یا نه (منظور تگ Nfc است) در داخل این void یک void دیگر به نام readFromNFC است که کار خواندن را انجام میدهد.

پس خواندن یک Tag Nfc همانند بالا شد.

یک فرگمنت به نام NFCWriteFragment.java وجود دارد که عمل نوشتن بروی تگ Nfc را انجام میدهد و همانند زیر است.

 

همانند قبل برخی بخش ها تکراری است فقط به بخش writeToNfc خواهیم پرداخت در اینجا این متود یک متن تست را به تگ nfc نسبت میدهد و در آن ذخیره می کند چون نمیشه خود فایل text رو یعنی String رو ذخیره کرد مقدار Ascii آن را دریافت و در Nfc تگ قرار خواهیم داد.

به همین راحتی

بخش اصلی برنامه یا MainActivity

دو تا Void به نام های showReadFragment و showWriteFragment به برای نمایش فرگمنت ها مورد استفاده قرار میگیرد. در بخش onResume شاید بشه گفت یه جورایی یک Listent تعریف شده تا در صورتی که کارتی که حاوی تگ بود به گوشی نزدیک شد یکسری عملیات انجام شود interfcae ها که تعریف شده بود نیز مشخص است onDialogDisplayed و onDialogDismissed که متوجه می شوید چه عملی در حال شبیه سازی کردن است. بخش onNewIntent به منظور گرفتن داده از فرگمنت است و بررسی می شود که آیا باید تگ نوشته شود یا Detect شود.

 

 

این آموزش هم به پایان رسید.

 

موفق و پیروز باشید.

درباره نویسنده

با زبان های برنامه نویسی C# , Java , Php به صورت تخصصی کار کردم و بیشتر وقتم رو در برنامه نویسی می گذرونم علاقه زیادی به ساخت اپلیکیشن اندروید دارم.

نظرها ( ۶ )

  1. ۲۷, بهمن , ۱۳۹۶ در ۶:۲۶ ب.ظ

    سلام
    متاسفانه بعد از اینکه read میکنم این ارور رو میده:

    Attempt to invoke virtual method ‘void android.nfc.tech.Ndef.connect()’ on a null object reference

    یعنی تشخصی میده و میگه NFC Tag detected ولی موقع اجرای متود readFromNFC() این ارورو میده!

  2. علی
    ۸, اردیبهشت , ۱۳۹۷ در ۳:۳۱ ق.ظ

    بانام خدا
    سلام
    از کارت مترو و اتوبوس و دانشجویی چطور میشه کپی کرد و اجرا کرد؟ نرم افزار خوبی میشناسید؟
    اکثر نرم افزارها میگن نوع برچسب nfc پشتیبانی نشد.
    چیزی نیست کاری به نوع نداشته باشه و فقط کپی کنه و اجرا؟

    • محمد حسین جعفری پور
      ۸, اردیبهشت , ۱۳۹۷ در ۸:۳۳ ب.ظ

      سلام خیر امکان نفوظ به این نوع کارت ها وجود ندارد زیرا باید تگ مربوط به هر کارت را که می خواهید را داشته باشید یا اینکه result آن را دریافت کنید و ببینید با چه چیزی نوشته شده است با گوشی می توان این کار را کرد و دستگاه های خارجی نیز برای اینکار وجود دارد.

      موفق باشید.

  3. a'del
    ۲۹, مرداد , ۱۳۹۸ در ۱:۳۹ ب.ظ

    ممنون بابت محتوای مفیدتون

    اگه یه ریدر rfid داشته باشیم و بخوایم یه برنامه ساده برای خوندن چندتا تگ براش بنویسیم به طوری که بعد از خوندن یکی از تگهای خونده شده رو انتخاب کنیم که اطلاعاتش رو بهمون نشون بده چیکار باید بکنیم باز همین مثال رو میشه اونجا هم استفاده کرد ؟

    ممنون میشم راهنمایی کنید

  4. محمد جواد حجتی
    ۶, تیر , ۱۳۹۹ در ۱۰:۵۸ ق.ظ

    سلام وقتتون بخیر آیا برای خواندن کارت های RFID هم استفاده میشه کرد؟