標籤:rri keyword 機制 bsp 修改 can xmlns min icon
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
一. 修改本機藍牙裝置的可見度
二. 掃描周圍可用的藍牙裝置
Eg:
一. 資訊清單檔AdroidManifest.xml:
[java] view plain copy
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.se7en"
- android:versionCode="1"
- android:versionName="1.0">
- <uses-sdk android:minSdkVersion="8" />
-
- <application android:icon="@drawable/icon" android:label="@string/app_name">
- <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>
- <uses-permission android:name="android.permission.BLUETOOTH"/>
-
- <!-若需要管理藍牙裝置,如修改可見度,則需以下的許可權->
- <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
- </manifest>
二. 布局檔案: main.xml:
[java] view plain copy
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/hello"
- />
- <Button
- android:id="@+id/discoverButton"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="設定可見度"/>
- <Button
- android:id="@+id/scanButton"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="開始掃描"/>
- </LinearLayout>
三. MainActivity:
[java] view plain copy
- import android.app.Activity;
- import android.bluetooth.BluetoothAdapter;
- import android.bluetooth.BluetoothDevice;
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- import android.content.IntentFilter;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
-
- public class MainActivity extends Activity {
- private Button discoverButton = null;
- private Button scanButton = null;
- private BluetoothAdapter adapter = null;
- private BluetoothReceiver bluetoothReceiver = null;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
-
- adapter = BluetoothAdapter.getDefaultAdapter();
-
- discoverButton = (Button)findViewById(R.id.discoverButton);
- scanButton = (Button)findViewById(R.id.scanButton);
- //修改藍牙裝置的可見度
- discoverButton.setOnClickListener(new OnClickListener(){
- @Override
- public void onClick(View view) {
- Intent discoverIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
-
- //設定藍芽可見度,500表示可見時間(單位:秒),當值大於300時預設為300
- discoverIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,500);
- startActivity(discoverIntent);
- }
- });
-
- scanButton.setOnClickListener(new OnClickListener(){
- @Override
- public void onClick(View v) {
- //開始掃描周圍藍牙裝置,該方法是非同步呼叫並以廣播的機制返回,所以需要建立一個BroadcastReceiver來擷取資訊
- adapter.startDiscovery();
- }
- });
-
- //設定廣播接收的filter
- IntentFilter intentFilter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
- //建立藍芽廣播資訊的receiver
- bluetoothReceiver = new BluetoothReceiver ();
- //註冊廣播接收器
- registerReceiver(bluetoothReceiver,intentFilter);
-
- }
-
- private class BluetoothReceiver extends BroadcastReceiver{
- @Override
- public void onReceive(Context context, Intent intent) {
- //獲得掃描到的遠程藍牙裝置
- BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
- System.out.println(device.getAddress());
- }
-
- }
- }
Android開發之藍芽(Bluetooth)操作(二)--修改本機藍牙裝置的可見度,並掃描周圍可用的藍牙裝置