Android - Bluetooth
Pek çok yöntem arasında Bluetooth, iki farklı cihaz arasında veri gönderip almanın bir yoludur. Android platformu, bir cihazın diğer Bluetooth cihazlarıyla kablosuz olarak veri alışverişi yapmasına izin veren Bluetooth çerçevesi için destek içerir.
Android, bu farklı işlemleri gerçekleştirmek için Bluetooth API sağlar.
Diğer Bluetooth cihazlarını tara
Eşleştirilmiş cihazların bir listesini alın
Servis keşfi yoluyla diğer cihazlara bağlanın
Android, Bluetooth ile iletişim kurmak için BluetoothAdapter sınıfı sağlar. GetDefaultAdapter () statik yöntemini çağırarak bu çağrının bir nesnesini oluşturun. Söz dizimi aşağıda verilmiştir.
private BluetoothAdapter BA;
BA = BluetoothAdapter.getDefaultAdapter();
Cihazınızın Bluetooth'unu etkinleştirmek için, aşağıdaki Bluetooth sabiti ACTION_REQUEST_ENABLE ile amacı arayın. Sözdizimi.
Intent turnOn = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(turnOn, 0);
Bu sabitin dışında, farklı görevleri destekleyen API tarafından sağlanan başka sabitler de vardır. Aşağıda listelenmiştir.
Sr.No | Sabit ve açıklama |
---|---|
1 | ACTION_REQUEST_DISCOVERABLE Bu sabit, bluetooth keşfini açmak için kullanılır |
2 | ACTION_STATE_CHANGED Bu sabit, Bluetooth durumunun değiştirildiğini bildirir |
3 | ACTION_FOUND Bu sabit, keşfedilen her cihaz hakkında bilgi almak için kullanılır. |
Bluetooth'u etkinleştirdikten sonra, getBondedDevices () yöntemini çağırarak eşleştirilmiş cihazların bir listesini alabilirsiniz. Bir dizi bluetooth cihazı döndürür. Sözdizimi.
private Set<BluetoothDevice>pairedDevices;
pairedDevices = BA.getBondedDevices();
Eşleştirilmiş Aygıtların dışında, API'de Blueetooth üzerinde daha fazla kontrol sağlayan başka yöntemler de vardır. Aşağıda listelenmiştir.
Sr.No | Yöntem ve açıklama |
---|---|
1 | enable() Bu yöntem, etkinleştirilmemişse bağdaştırıcıyı etkinleştirir |
2 | isEnabled() Adaptör etkinleştirilirse bu yöntem true döndürür |
3 | disable() Bu yöntem bağdaştırıcıyı devre dışı bırakır |
4 | getName() Bu yöntem Bluetooth adaptörünün adını döndürür |
5 | setName(String name) Bu yöntem Bluetooth adını değiştirir |
6 | getState() Bu yöntem, Bluetooth Adaptörünün mevcut durumunu döndürür. |
7 | startDiscovery() Bu yöntem Bluetooth'un keşif sürecini 120 saniye başlatır. |
Misal
Bu örnek, Bluetooth'u kullanmak için BluetoothAdapter sınıfının tanıtımını ve Bluetooth ile eşleştirilmiş cihazların listesini gösterir.
Bu örneği denemek için, bunu gerçek bir cihazda çalıştırmanız gerekir.
Adımlar | Açıklama |
---|---|
1 | Bir Android uygulaması, com.example.sairamkrishna.myapplication paketini oluşturmak için Android stüdyosunu kullanacaksınız. |
2 | Kodu eklemek için src / MainActivity.java dosyasını değiştirin |
3 | Düzen XML dosyasını değiştirin res / layout / activity_main.xml gerekirse herhangi bir GUI bileşeni ekleyin. |
4 | Gerekli izinleri eklemek için AndroidManifest.xml dosyasını değiştirin. |
5 | Uygulamayı çalıştırın ve çalışan bir android cihaz seçin ve üzerine uygulamayı yükleyin ve sonuçları doğrulayın. |
İşte içeriği src/MainActivity.java
package com.example.sairamkrishna.myapplication;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.Set;
public class MainActivity extends Activity {
Button b1,b2,b3,b4;
private BluetoothAdapter BA;
private Set<BluetoothDevice>pairedDevices;
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1 = (Button) findViewById(R.id.button);
b2=(Button)findViewById(R.id.button2);
b3=(Button)findViewById(R.id.button3);
b4=(Button)findViewById(R.id.button4);
BA = BluetoothAdapter.getDefaultAdapter();
lv = (ListView)findViewById(R.id.listView);
}
public void on(View v){
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 off(View v){
BA.disable();
Toast.makeText(getApplicationContext(), "Turned off" ,Toast.LENGTH_LONG).show();
}
public void visible(View v){
Intent getVisible = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
startActivityForResult(getVisible, 0);
}
public void list(View v){
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);
}
}
İşte içeriği activity_main.xml
Burada abc, tutorialspoint logosunu gösterir.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:transitionGroup="true">
<TextView android:text="Bluetooth Example"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textview"
android:textSize="35dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tutorials point"
android:id="@+id/textView"
android:layout_below="@+id/textview"
android:layout_centerHorizontal="true"
android:textColor="#ff7aff24"
android:textSize="35dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:src="@drawable/abc"
android:layout_below="@+id/textView"
android:layout_centerHorizontal="true"
android:theme="@style/Base.TextAppearance.AppCompat" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Turn On"
android:id="@+id/button"
android:layout_below="@+id/imageView"
android:layout_toStartOf="@+id/imageView"
android:layout_toLeftOf="@+id/imageView"
android:clickable="true"
android:onClick="on" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Get visible"
android:onClick="visible"
android:id="@+id/button2"
android:layout_alignBottom="@+id/button"
android:layout_centerHorizontal="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="List devices"
android:onClick="list"
android:id="@+id/button3"
android:layout_below="@+id/imageView"
android:layout_toRightOf="@+id/imageView"
android:layout_toEndOf="@+id/imageView" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="turn off"
android:onClick="off"
android:id="@+id/button4"
android:layout_below="@+id/button"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listView"
android:layout_alignParentBottom="true"
android:layout_alignLeft="@+id/button"
android:layout_alignStart="@+id/button"
android:layout_below="@+id/textView2" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Paired devices:"
android:id="@+id/textView2"
android:textColor="#ff34ff06"
android:textSize="25dp"
android:layout_below="@+id/button4"
android:layout_alignLeft="@+id/listView"
android:layout_alignStart="@+id/listView" />
</RelativeLayout>
İşte içeriği Strings.xml
<resources>
<string name="app_name">My Application</string>
</resources>
İşte içeriği AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.sairamkrishna.myapplication" >
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Uygulamanızı çalıştırmayı deneyelim. Gerçek Android Mobil cihazınızı bilgisayarınıza bağladığınızı varsayıyorum. Uygulamayı Android stüdyosundan çalıştırmak için, projenizin etkinlik dosyalarından birini açın
Şimdi görünürlüğünüzü açmak için Görünür Ol düğmesini seçin. Aşağıdaki ekran, 120 saniye için keşfi açmak için izninizi isteyecektir.
Şimdi sadece Cihazları Listele seçeneğini seçin. Liste görünümünde eşleştirilmiş cihazları listeleyecektir. Benim durumumda, yalnızca bir eşleştirilmiş cihazım var. Aşağıda gösterilmiştir.
Şimdi Bluetooth'u kapatmak için Kapat düğmesini seçin. Bluetooth'u kapattığınızda, Bluetooth'un başarıyla kapatıldığını gösteren aşağıdaki mesaj görünecektir.