استفاده از بلوتوث در برنامه های اندروید
با سلام
دوستان فرض کنید یک وسیله ای دیگری که میتونه گوشی موبایل یا هر وسیله دیگری باشه که دارای سیستم بلوتوث هست میخواد با استفاده از بلوتوث به نرم افزار اندرویدی متصل بشه و یک سری اطلاعات را دریافت کنه ولی متاسفانه نمیدونم باید چطور اینکار رو انجام بدهم
و اینکه ایا برای برفراری اتصال با همون زبان جاوا امکان پذیر هست یا حتما باید از زبان های مثل ++C با استفاده از NDk استفاده کنیم؟
با تشکر
سلام دوست گرامی خیر نیاز نیست از c++ استفاده کنید...
دقیقا بلوتوث مثل استفاده از Socket ها ، در تدریس های استاد است ولی با این تفاوت که نحوه ی اتصال آن متفاوت است....
مجوز های مورد نیاز:
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH" />
ابتدا ما باید درخواست روشن کردن بلوتوث را بدیم...
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();// this is important...
if(!bluetoothAdapter.isEnabled()){// if the bluetooth is not enable...
bluetoothAdapter.enable();
}
سپس به این فیلد ها نیاز داریم:
public static final UUID MY_UUID = UUID.fromString("8ce255c0-200a-11e0-ac64-0800200c9a66");//random uuid...
public static final String MY_APP = "";//your app name
نحوه ی اتصال به عنوان سرور:
new Thread(new Runnable() {
@Override
public void run() {
final BluetoothServerSocket serverSocket = bluetoothAdapter.listenUsingInsecureRfcommWithServiceRecord(MY_APP, MY_UUID);
final BluetoothSocket bluetoothSocket = serverSocket.accept();// listen to a new client
DataOutputStream outputStream = new DataOutputStream(bluetoothSocket.getOutputStream());
DataInputStream inputStream = new DataInputStream(bluetoothSocket.getInputStream());
}
}).start();
نحوه ی اتصال به عنوان client:
ابتدا برای شروع اتصال میبایست یک BluetoothDevice داشته باشید...
مثلا در اینجا دستگاهی که قبلا متصل شده که نام x داره را می گیریم و می خواهیم به آن متصل شویم:
for (BluetoothDevice bondedDevice : bluetoothAdapter.getBondedDevices()) {
if (bondedDevice.getName().equalsIgnoreCase("x")){
}
}
سپس پس از دریافت آن به این شکل به سرور متصل می شویم...
new Thread(new Runnable() {
@Override
public void run() {
final BluetoothSocket socket;
try {
socket = bondedDevice.createInsecureRfcommSocketToServiceRecord(AppManager.MY_UUID);
} catch (Exception e) {
e.printStackTrace();
// an error
return;
}
socket.connect();// connecting to server
final DataOutputStream outputStream = new DataOutputStream(socket.getOutputStream());
final DataInputStream inputStream = new DataInputStream(socket.getInputStream());
}
}).start();
بعد پس از دریافت DataOutputStream و DataInputStream می توانید ارتباط بر قرار کنید...
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .