بدست آوردن اطلاعات دستگاه اندرویدی

خانه » آموزش‌های تکمیلی » بدست آوردن اطلاعات دستگاه اندرویدی
بدست آوردن اطلاعات دستگاه اندرویدی
در این جلسه از سری مباحث آموزش برنامه نویسی اندروید به نحوه بدست آوردن اطلاعات دستگاه اندرویدی شامل مشخصات سخت افزاری و نرم افزاری به وسیله کلاس Build می‌پردازیم.
بدست آوردن اطلاعات دستگاه‌های اندرویدی به نام خدا. با توجه به متن باز بودن سیستم عامل اندروید، تولید کنندگان مطرح و گمنام بی شماری انواع دستگاه‌های اندرویدی را تولید و روانه بازار می‌کنند. هر مدل از این دیوایس‌ها دارای سخت افزاری متفاوت از سایر مدل‌هاست. همچنین با توجه به انتشار نسخه‌های جدید اندروید توسط گوگل، نسخه‌های مختلفی از این سیستم عامل توسط کاربران در حال استفاده است.
گاهی اوقات ممکن است بخشی از عملکرد برنامه ما وابسته به نسخه خاصی از اندروید و یا سخت افزار مانند CPU باشد. یا اینکه بخواهیم بخشی از برنامه بر اساس تفاوت سخت افزار و نرم افزار هر دستگاه، به شیوه متفاوتی اجرا شود. در هر صورت لازم است تا توسعه دهنده اندروید به ویژگی‌های نرم افزاری و سخت افزاری دستگاه دسترسی داشته باشد.
در اندروید کل..

خانه » آموزش‌های تکمیلی » بدست آوردن اطلاعات دستگاه اندرویدی

بدست آوردن اطلاعات دستگاه اندرویدی

در این جلسه از سری مباحث آموزش برنامه نویسی اندروید به نحوه بدست آوردن اطلاعات دستگاه اندرویدی شامل مشخصات سخت افزاری و نرم افزاری به وسیله کلاس Build می‌پردازیم.

بدست آوردن اطلاعات دستگاه‌های اندرویدی

به نام خدا. با توجه به متن باز بودن سیستم عامل اندروید، تولید کنندگان مطرح و گمنام بی شماری انواع دستگاه‌های اندرویدی را تولید و روانه بازار می‌کنند. هر مدل از این دیوایس‌ها دارای سخت افزاری متفاوت از سایر مدل‌هاست. همچنین با توجه به انتشار نسخه‌های جدید اندروید توسط گوگل، نسخه‌های مختلفی از این سیستم عامل توسط کاربران در حال استفاده است.
گاهی اوقات ممکن است بخشی از عملکرد برنامه ما وابسته به نسخه خاصی از اندروید و یا سخت افزار مانند CPU باشد. یا اینکه بخواهیم بخشی از برنامه بر اساس تفاوت سخت افزار و نرم افزار هر دستگاه، به شیوه متفاوتی اجرا شود. در هر صورت لازم است تا توسعه دهنده اندروید به ویژگی‌های نرم افزاری و سخت افزاری دستگاه دسترسی داشته باشد.
در اندروید کلاسی با نام Build این وظیفه را بعهده دارد. در آموزش‌های گذشته مانند آموزش کار با نوتیفیکیشن در اندروید و آموزش Service در اندروید نیز از این کلاس برای تشخیص نسخه اندروید و انجام عمل متناسب با آن استفاده کرده بودیم. در این جلسه قصد دارم سایر قابلیت‌های این کلاس را بررسی کنم.

ویژگی‌های کلاس Build

در جدول زیر به تعدادی از ویژگی‌های کلاس Build پرداخته و کاربرد هرکدام را به مختصر توضیح می‌دهم:

نام ویژگی شرح
BRAND برند سازنده دستگاه
MANUFACTURER نام سازنده دستگاه
DEVICE نام طرح صنعتی دستگاه
MODEL نام رسمی دستگاه
DISPLAY شناسه صفحه نمایش دستگاه
TYPE نوع دستگاه از جمله “user” و “eng”
HARDWARE مشخصات سخت افزار دستگاه
PRODUCT نام کلی دستگاه
VERSION.RELEASE نسخه اندروید
VERSION.SDK_INT نسخه SDK اندروید

نکته: خروجی برخی ویژگی‌ها مانند BRAND و MANUFACTURER در اکثر دستگاه‌ها یکسان است.

پروژه بدست آوردن اطلاعات دستگاه اندرویدی

قصد دارم تعدادی از مهمترین ویژگی‌های کلاس Build اندروید را در قالب یک پروژه ساده استفاده کنم بطوری که خروجی روی اکتیویتی نمایش داده شود. مطابق مبحث آموزش ساخت پروژه در اندروید استودیو یک پروژه اندرویدی با نام DeviceInfo می‌سازم. اکتیویتی را از نوع Empty Activity و زبان را Java انتخاب کردم.
ابتدا ۵ عدد TextView به layout اکتیویتی اضافه می‌کنم. هرکدام از این View ها یکی از مشخصات دستگاه را نمایش خواهد داد.

activity_main.xml

  <?xml version="1.0" encoding="utf-8"?>  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"      xmlns:app="http://schemas.android.com/apk/res-auto"      xmlns:tools="http://schemas.android.com/tools"      android:layout_width="match_parent"      android:layout_height="match_parent"      android:gravity="center"      tools:context=".MainActivity">        <TextView          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:id="@+id/txt_manufacturer"          android:textSize="20dp"          android:text="" />        <TextView          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:id="@+id/txt_model"          android:textSize="20dp"          android:text=""          android:layout_below="@id/txt_manufacturer" />        <TextView          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:id="@+id/txt_version"          android:textSize="20dp"          android:text=""          android:layout_below="@id/txt_model"/>        <TextView          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:id="@+id/txt_sdk"          android:textSize="20dp"          android:text=""          android:layout_below="@id/txt_version" />        <TextView          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:id="@+id/txt_hardware"          android:textSize="20dp"          android:text=""          android:layout_below="@id/txt_sdk" />    </RelativeLayout>  

سپس اکتیویتی را به صورت زیر تکمیل می‌کنم:

MainActivity.java

  package ir.android_studio.deviceinfo;    import androidx.appcompat.app.AppCompatActivity;    import android.os.Build;  import android.os.Bundle;  import android.widget.TextView;  import android.widget.Toast;    public class MainActivity extends AppCompatActivity {        TextView manufacturerTxt, modelTxt, versionTxt, sdkTxt, hardwareTxt;        @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);            manufacturerTxt = findViewById(R.id.txt_manufacturer);          modelTxt = findViewById(R.id.txt_model);          versionTxt = findViewById(R.id.txt_version);          sdkTxt = findViewById(R.id.txt_sdk);          hardwareTxt = findViewById(R.id.txt_hardware);            String manufacturer = Build.MANUFACTURER;          String model = Build.MODEL;          String version = Build.VERSION.RELEASE;          int sdk = Build.VERSION.SDK_INT;          String hardware = Build.HARDWARE;            manufacturerTxt.setText("Manufacturer: " + manufacturer);          modelTxt.setText("Model: " + model);          versionTxt.setText("Version: " + version);          sdkTxt.setText("SDK: " + Integer.toString(sdk));          hardwareTxt.setText("Hardware: " + hardware);        }  }  

چهار متغیر از جنس String و یک متغیر از جنس int تعریف کرده‌ام که به ترتیب، مشخصات مربوط به MANUFACTURER و MODEL و RELEASE و SDK_INT و HARDWARE را از کلاس Build گرفته و ذخیره می‌کنند. در نهایت هرکدام را روی یک TextView نمایش می‌دهم.
پروژه را اجرا می‌کنم:

ملاحظه می‌کنید مشخصات دستگاه شامل نام سازنده، مدل دستگاه، نسخه اندروید، نسخه SDK و مدل CPU در اکتیویتی نمایش داده شده است.
از جمله کارایی‌های این کلاس می‌توان به اجرا یا عدم اجرای کد ساخت کانال نوتیفیکیشن بر اساس نسخه سیستم عامل اشاره کرد که در مبحث آموزش کار با نوتیفیکیشن در اندروید به آن پرداخته شده است:

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {        // Create Notification channel    }  

شرط فوق بررسی می‌کند در صورتی کد اجرا شود که نسخه اندروید دستگاه حداقل Oreo و یا بالاتر باشد.
موفق و پیروز باشید.

مطالعه‌ی بیشتر:

https://developer.android.com/reference/android/os/Build
https://developer.android.com/reference/android/os/Build.VERSION

توجه : سورس پروژه درون پوشه Exercises قرار دارد

دانلود نسخه PDF این آموزش به همراه سورس پروژه
تعداد صفحات : ۶
حجم : ۱ مگابایت
قیمت : رایگان
دانلود رایگان با حجم ۱ مگابایت لینک کمکی این مطلب چقدر برایتان مفید بود؟ لطفا امتیاز دهید 4.2 / 5 ( 5 امتیاز ) آموزش‌های تکمیلی, آموزش‌های رایگان

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دشمن ساروج سوربات پتاسیم استئارات منیزیم بنزوات سدیم منتول وانیل مونوسدیم گلوتامات صمغ عربی استئاریک اسید پودر تالک پرلیت خاک رنگبر روغن آرگان روغن جوجوبا تیو سولفات سدیم کراتین کتراک اسید تانیک پکتین کاراگینان پودر کاکائو بوراکس آلانتوئین صمغ عربی برای اپیلاسیون آمونیاک خانگی پروتئین وی پگاه کربومر ساختار فروکتوز

کتراک

صمغ عربی

مونو سدیم گلوتامات

اسید استیک

کربومر

کافور

خاک دیاتومه

کربن فعال

سیلیکون دی اکساید

آویسل

آنتی اکسیدان TBHQ

گلوتن ذرت

لانولین

روغن کندش

کافور

گلوتن

روغن فندوق

لاکتات کلسیم

منیزیم استئارات

روغن آووکادو

روغن درخت چای

روغن براهمی

روغن نارگیل

کتراک

سوربات پتاسیم

روغن بادام

شی باتر

ایزوتیازولین

روغن خراطین

روغن جوجوبا

مالتودکسترین

روغن آرگان

فوماریک اسید

خاک دیاتومه