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

اندروید Bluetooth API را ارائه می دهد تا این عملکردهای مختلف را اجرا کند .

اسکن کردن دستگاه های بلوتوث دیگر
ارائه ی لیستی از دستگاه های جفت شده
اتصال به دیگر دستگاه ها از طریق سرویس یافته

اندروید گروه BluetoothAdapter را ایجاد می کند تا با بلوتوث انتقال دهد. آبجکتی از این فراخوانی را با فراخوانی روش استاتیک getDefaultAdapter(). ایجاد کنید. ترکیب آن به قرار زیر می باشد.
?
۱
۲

private BluetoothAdapter BA;‎
BA = BluetoothAdapter.getDefaultAdapter();‎

برای اینکه بلوتوث دستگاه خود را فعال کنید هدف را با دنبال کردن ثابت بلوتوث ACTION_REQUEST_ENABLE فرابخوانید. ترکیب آن مانند زیر می باشد.
?
۱
۲

Intent turnOn = new ‎Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);‎
startActivityForResult(turnOn, 0);

علاوه بر این ثابت، ثابت های دیگری وجود دارند که API را ارائه می دهند که فعالیت های متفاوتی را حمایت می کند. این ثابت ها در زیر لیست شده اند.
Constant & description
شماره
ACTION_REQUEST_DISCOVERABLE این ثابت برای روشن کردن کشف بلوتوث استفاده می شود.
۱
ACTION_STATE_CHANGED این ثابت هشدار خواهد داد که وضعیت بلوتوث تغییر کرده است.
۲
ACTION_FOUND این ثابت برای دریافت اطلاعات در مورد دستگاه های کشف شده ی دیگر به کار می رود.
۳

زمانی که بلوتوث را فعال می کنید می توانید لیستی از دستگاه های جفت شده را با فراخوانی روش getBondedDevices() داشته باشید. این روش مجموعه ای از دستگاه های بلوتوث را اعلام می کند. ترکیب آن مانند زیر می باشد .
?
۱
۲
۳

private SetpairedDevices;‎
pairedDevices = BA.getBondedDevices();

علاوه بر دستگاه های جفت شده، روش های دیگری در API وجو دارند که کنترل بیشتری روی بلوتوث ارائه می دهند. این روش ها در زیر ارائه شده اند.
Method & description
شماره
enable() این روش تعدیل کننده را اگر فعال نباشد، فعال می کند.
۱
isEnabled() این روش درست است اگر تعدیل کننده فعال باشد.
۲
disable() این روش تعدیل کننده را غیرفعال می کند.
۳
getName() این روش نام تعدیل کننده ی بلوتوث را بازمی گرداند.
۴
setName(String name) این روش نام بلوتوث را تغییر می دهد.
۵
getState() این روش آخرین وضعیت تعدیل کننده ی بلوتوث را بازمی گرداند.
۶
startDiscovery() این روش فرآیند کشف بلوتوث را برای مدت ۱۲۰ ثانیه شروع می کند.
۷

این مثال توضیحاتی برای گروه BluetoothAdapter ارائه می دهد تا بلوتوث را به کار گرفته و لیست دستگاه های جفت شده با بلوتوث را ارائه می دهد.
مثال:
description
مراحل
برای ایجاد یک برنامه ی اندروید از Eclipse IDE استفاده خواهید کرد و آن را با عنوان AudioCapture تحت بسته ی com.example.audiocapture نام گذاری کنید. زمان ایجاد این برنامه مطمئن شوید که Target SDK و Compile With در آخرین ورژن Android SDK هستند تا از سطوح بالاتر API استفاده کنید.
۱
فایل src/MainActivity.java را برای افزودن کد تغییر دهید.
۲
لی اوت فایل XML مربوط به res/layout/activity_main.xml را تغییر داده و اگر لازم است مولفه ی GUI به آن اضافه کنید.
۳
فایل res/values/string.xml را تغییر داده و مولفه های رشته ی لازم را به آن اضافه کنید.
۴
AndroidManifest.xml را تغییر دهید تا دستورات لازم را اضافه کنید.
۵
برنامه را اجرا کنید و یک دستگاه اجرایی اندروید انتخاب کرده و برنامه را روی آن نصب کنید و نتایج را بررسی کنید.
۶

در اینجا محتوای src/com.example.bluetooth/MainActivity.java را مشاهده می کنید.
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴
۱۵
۱۶
۱۷
۱۸
۱۹
۲۰
۲۱
۲۲
۲۳
۲۴
۲۵
۲۶
۲۷
۲۸
۲۹
۳۰
۳۱
۳۲
۳۳
۳۴
۳۵
۳۶
۳۷
۳۸
۳۹
۴۰
۴۱
۴۲
۴۳
۴۴
۴۵
۴۶
۴۷
۴۸
۴۹
۵۰
۵۱
۵۲
۵۳
۵۴
۵۵
۵۶
۵۷
۵۸
۵۹
۶۰
۶۱
۶۲
۶۳
۶۴
۶۵
۶۶
۶۷
۶۸
۶۹
۷۰
۷۱
۷۲
۷۳

package com.example.bluetooth;‎
import java.util.ArrayList;‎
import java.util.List;‎
import java.util.Set;‎
import android.os.Bundle;‎
import android.app.Activity;‎
import android.bluetooth.BluetoothAdapter;‎
import android.bluetooth.BluetoothDevice;‎
import android.content.Intent;‎
import android.view.Menu;‎
import android.view.View;‎
import android.widget.ArrayAdapter;‎
import android.widget.Button;‎
import android.widget.ListAdapter;‎
import android.widget.ListView;‎
import android.widget.Toast;‎
public class MainActivity extends Activity {‎
‎ private Button On,Off,Visible,list;‎
‎ private BluetoothAdapter BA;‎
‎ private SetpairedDevices;‎
‎ private ListView lv;‎
‎ @Override
‎ protected void onCreate(Bundle savedInstanceState) {‎
‎ super.onCreate(savedInstanceState);‎
‎ setContentView(R.layout.activity_main);‎
‎ On = (Button)findViewById(R.id.button1);‎
‎ Off = (Button)findViewById(R.id.button2);‎
‎ Visible = (Button)findViewById(R.id.button3);‎
‎ list = (Button)findViewById(R.id.button4);‎
‎ lv = (ListView)findViewById(R.id.listView1);‎
‎ BA = BluetoothAdapter.getDefaultAdapter();‎
‎ }‎
‎ public void on(View view){‎
‎ if (!BA.isEnabled()) {‎
‎ Intent turnOn = new ‎Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);‎
‎ startActivityForResult(turnOn, 0);‎
‎ Toast.makeText(getApplicationContext(),”Turned on” ‎
‎ ,Toast.LENGTH_LONG).show();‎
‎ }‎
‎ else{‎
‎ Toast.makeText(getApplicationContext(),”Already on”,‎
‎ Toast.LENGTH_LONG).show();‎
‎ }‎
‎ }‎
‎ public void list(View view){‎
‎ pairedDevices = BA.getBondedDevices();‎
‎ ArrayList list = new ArrayList();‎
‎ for(BluetoothDevice bt : pairedDevices)‎
‎ list.add(bt.getName());‎
‎ Toast.makeText(getApplicationContext(),”Showing Paired ‎Devices”,‎
‎ Toast.LENGTH_SHORT).show();‎
‎ final ArrayAdapter adapter = new ArrayAdapter
‎ (this,android.R.layout.simple_list_item_1, list);‎
‎ lv.setAdapter(adapter);‎
‎ }‎
‎ public void off(View view){‎
‎ BA.disable();‎
‎ Toast.makeText(getApplicationContext(),”Turned off” ,‎
‎ Toast.LENGTH_LONG).show();‎
‎ }‎
‎ public void visible(View view){‎
‎ Intent getVisible = new Intent(BluetoothAdapter.‎
‎ ACTION_REQUEST_DISCOVERABLE);‎
‎ startActivityForResult(getVisible, 0);‎
‎ }‎
‎ @Override
‎ public boolean onCreateOptionsMenu(Menu menu) {‎
‎ // Inflate the menu; this adds items to the action bar ‎if it is present.‎
‎ getMenuInflater().inflate(R.menu.main, menu);‎
‎ return true;‎
‎ }‎
}

در اینجا محتوای فایل activity_main.xml را مشاهده می کنید.
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴
۱۵
۱۶
۱۷
۱۸
۱۹
۲۰
۲۱
۲۲



‎ ‎

در اینجا محتوای فایل Strings.xml را مشاهده می کنید.
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲





‎ Bluetooth‎
‎ Settings‎
‎ Hello world!‎
‎ Turn On‎
‎ Turn Off‎
‎ Get Visible‎
‎ List Devices‎

در اینجا محتوای AndroidManifest.xml را مشاهده می کنید.
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴
۱۵
۱۶
۱۷
۱۸
۱۹
۲۰
۲۱




‎ ‎
‎ ‎
‎ ‎






‎ ‎

‎ ‎


‎ ‎
‎ ‎

اجازه بدهید برنامه ی AndroidCapture شما را اجرا کنیم. فرض می کنیم که دستگاه موبایل اندروید خود را به کامپیوتر متصل کرده اید. برای اجرای برنامه از Eclipse، یکی ازفایل های فعالیت پروژه را باز کرده و روی آیکن Run از تولبار کلیک کنید. قبل از شروع برنامه ی شما، Eclipse پنجره ی زیر را برای انتخاب گزینه ی محل اجرای برنامه ی اندرویدتان، نمایش خواهد داد.
آموزش بلوتوث اندروید

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

اکنون دکمه ی turn on را برای روشن کردن بلوتوث انتخاب کنید. اما به محض انتخاب آن، بلوتوث روشن نمی شود. در واقع اجازه ی شما را برای فعال شدن بلوتوث می پرسد.
آموزش بلوتوث اندروید

اکنون دکمه ی Get visible را انتخاب کنید تا قابلیت رویت شما روشن شود. صفحه ی زیر از شما اجازه می خواهد تا به مدت ۱۲۰ ثانیه دستگاه قابل کشف باشد.
آموزش بلوتوث اندروید

اکنون گزینه ی List Devices را انتخاب کنید. این گزینه لیست دستگاه های جفت شده را نشان می دهد. در مورد دستگاه من فقط یک دستگاه جفت شده وجود دارد که صفحه ی مربوط به آن را در زیر مشاهده می کنید.
آموزش بلوتوث اندروید

اکنون دکمه ی Turn off را برای خاموش کردن بلوتوث انتخاب کنید که پیغام زیر ظاهر خواهد شد و نشان دهنده ی خاموش شدن موفقیت آمیز بلوتوث می باشد.