Android编程9:蓝牙测试
2015-06-14 11:22
411 查看
转自http://blog.csdn.net/jdh99/article/details/6871070
Android编程9:蓝牙测试
本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.
软件平台:win7 + eclipse + sdk
设计思路:
配合倒计时定时器实现蓝牙打开,可见,扫描三个功能
参考链接:
http://blog.csdn.net/pwei007/article/details/6015907
源代码:
main.xml:
[html] view
plaincopy
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:orientation="vertical">
<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:text="TextView" android:layout_height="wrap_content"></TextView>
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/linearLayout1">
<Button android:id="@+id/button1" android:text="OFF" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/linearLayout2">
<Button android:id="@+id/button2" android:text="开启可见 " android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
<TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="设备不可见 "></TextView>
</LinearLayout>
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/linearLayout3">
<Button android:id="@+id/button3" android:text="扫描:OFF" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
<TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="停止扫描 "></TextView>
</LinearLayout>
<ListView android:id="@+id/listView1" android:layout_height="wrap_content" android:layout_width="match_parent"></ListView>
</LinearLayout>
test_bluetooth.java:
[java] view
plaincopy
package com.test_bluetooth;
import java.util.Set;
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.os.CountDownTimer;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
public class test_bluetooth extends Activity implements View.OnClickListener
{
private static final int REQUEST_ENABLE_BT = 2;
TextView txt;
TextView txt_see;
TextView txt_scan;
BluetoothAdapter mBluetoothAdapter;
ArrayAdapter<String> mArrayAdapter;
Button btn_switch;
Button btn_see;
Button btn_scan;
ListView list;
CountDownTimer see_timer;
CountDownTimer scan_timer;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
txt = (TextView)findViewById(R.id.textView1);
txt_see = (TextView)findViewById(R.id.textView2);
txt_scan = (TextView)findViewById(R.id.textView3);
//绑定XML中的ListView,作为Item的容器
list = (ListView) findViewById(R.id.listView1);
//获取蓝牙适配器
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
mArrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1);
if (mBluetoothAdapter == null)
{
// Device does not support Bluetooth
txt.setText("fail");
//退出程序
test_bluetooth.this.finish();
}
btn_switch = (Button)findViewById(R.id.button1);
btn_switch.setOnClickListener(this);
btn_see = (Button)findViewById(R.id.button2);
btn_see.setOnClickListener(this);
btn_see.setEnabled(false);
btn_scan = (Button)findViewById(R.id.button3);
btn_scan.setOnClickListener(this);
btn_scan.setText("扫描:OFF");
btn_scan.setEnabled(false);
//判断蓝牙是否已经被打开
if (mBluetoothAdapter.isEnabled())
{
//打开
btn_switch.setText("ON");
btn_see.setEnabled(true);
btn_scan.setEnabled(true);
}
see_timer = new CountDownTimer(120000,1000)
{
@Override
public void onTick( long millisUntilFinished)
{
txt_see.setText( "剩余可见时间" + millisUntilFinished / 1000 + "秒");
}
@Override
public void onFinish()
{
//判断蓝牙是否已经被打开
if (mBluetoothAdapter.isEnabled())
{
btn_see.setEnabled(true);
txt_see.setText( "设备不可见");
}
}
};
scan_timer = new CountDownTimer(12000,1000)
{
@Override
public void onTick( long millisUntilFinished)
{
txt_scan.setText( "剩余扫描时间" + millisUntilFinished / 1000 + "秒");
}
@Override
public void onFinish()
{
//判断蓝牙是否已经被打开
if (mBluetoothAdapter.isEnabled())
{
btn_scan.setEnabled(true);
//关闭扫描
mBluetoothAdapter.cancelDiscovery();
btn_scan.setText("扫描:OFF");
txt_scan.setText( "停止扫描");
}
}
};
}
@Override
protected void onDestroy() {
super.onDestroy();
android.os.Process.killProcess(android.os.Process.myPid());
}
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
switch (v.getId())
{
case R.id.button1:
{
String str = btn_switch.getText().toString();
if (str == "OFF")
{
if (!mBluetoothAdapter.isEnabled())
{
//打开蓝牙
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
txt.setText("s1");
btn_see.setEnabled(true);
btn_scan.setText("扫描:OFF");
btn_scan.setEnabled(true);
}
}
else
{
//关闭蓝牙
mBluetoothAdapter.disable();
btn_switch.setText("OFF");
mArrayAdapter.clear();
list.setAdapter(mArrayAdapter);
btn_see.setEnabled(false);
btn_scan.setEnabled(false);
}
break;
}
case R.id.button2:
{
//开启可见
Intent enableBtIntent_See = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
startActivityForResult(enableBtIntent_See, 3);
txt.setText("s1");
btn_see.setEnabled(false);
see_timer.start();
break;
}
case R.id.button3:
{
String str = btn_scan.getText().toString();
if (str == "扫描:OFF")
{
txt.setText("s5");
if (mBluetoothAdapter.isEnabled())
{
//开始扫描
mBluetoothAdapter.startDiscovery();
txt.setText("s6");
btn_scan.setText("扫描:ON");
// Create a BroadcastReceiver for ACTION_FOUND
final BroadcastReceiver mReceiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent)
{
// TODO Auto-generated method stub
String action = intent.getAction();
// When discovery finds a device
mArrayAdapter.clear();
if (BluetoothDevice.ACTION_FOUND.equals(action))
{
// Get the BluetoothDevice object from the Intent
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
// Add the name and address to an array adapter to show in a ListView
mArrayAdapter.add(device.getName() + ":" + device.getAddress());
}
list.setAdapter(mArrayAdapter);
}
};
// Register the BroadcastReceiver
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(mReceiver, filter); // Don't forget to unregister during onDestroy
scan_timer.start();
}
}
else
{
//关闭扫描
mBluetoothAdapter.cancelDiscovery();
btn_scan.setText("扫描:OFF");
scan_timer.cancel();
txt_scan.setText( "停止扫描");
}
break;
}
default:
break;
}
}
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
switch (requestCode)
{
case REQUEST_ENABLE_BT:
// When the request to enable Bluetooth returns
if (resultCode == Activity.RESULT_OK)
{
// Bluetooth is now enabled, so set up a chat session
btn_switch.setText("ON");
txt.setText("s4");
//获取蓝牙列表
Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
mArrayAdapter.clear();
// If there are paired devices
if (pairedDevices.size() > 0)
{
//txt.setText("s3");
// Loop through paired devices
for (BluetoothDevice device : pairedDevices)
{
// Add the name and address to an array adapter to show in a ListView
mArrayAdapter.add(device.getName() + ":" + device.getAddress());
}
list.setAdapter(mArrayAdapter);
}
} else
{
finish();
}
}
}
}
效果图:
Android编程9:蓝牙测试
本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.
软件平台:win7 + eclipse + sdk
设计思路:
配合倒计时定时器实现蓝牙打开,可见,扫描三个功能
参考链接:
http://blog.csdn.net/pwei007/article/details/6015907
源代码:
main.xml:
[html] view
plaincopy
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:orientation="vertical">
<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:text="TextView" android:layout_height="wrap_content"></TextView>
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/linearLayout1">
<Button android:id="@+id/button1" android:text="OFF" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/linearLayout2">
<Button android:id="@+id/button2" android:text="开启可见 " android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
<TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="设备不可见 "></TextView>
</LinearLayout>
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/linearLayout3">
<Button android:id="@+id/button3" android:text="扫描:OFF" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
<TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="停止扫描 "></TextView>
</LinearLayout>
<ListView android:id="@+id/listView1" android:layout_height="wrap_content" android:layout_width="match_parent"></ListView>
</LinearLayout>
test_bluetooth.java:
[java] view
plaincopy
package com.test_bluetooth;
import java.util.Set;
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.os.CountDownTimer;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
public class test_bluetooth extends Activity implements View.OnClickListener
{
private static final int REQUEST_ENABLE_BT = 2;
TextView txt;
TextView txt_see;
TextView txt_scan;
BluetoothAdapter mBluetoothAdapter;
ArrayAdapter<String> mArrayAdapter;
Button btn_switch;
Button btn_see;
Button btn_scan;
ListView list;
CountDownTimer see_timer;
CountDownTimer scan_timer;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
txt = (TextView)findViewById(R.id.textView1);
txt_see = (TextView)findViewById(R.id.textView2);
txt_scan = (TextView)findViewById(R.id.textView3);
//绑定XML中的ListView,作为Item的容器
list = (ListView) findViewById(R.id.listView1);
//获取蓝牙适配器
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
mArrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1);
if (mBluetoothAdapter == null)
{
// Device does not support Bluetooth
txt.setText("fail");
//退出程序
test_bluetooth.this.finish();
}
btn_switch = (Button)findViewById(R.id.button1);
btn_switch.setOnClickListener(this);
btn_see = (Button)findViewById(R.id.button2);
btn_see.setOnClickListener(this);
btn_see.setEnabled(false);
btn_scan = (Button)findViewById(R.id.button3);
btn_scan.setOnClickListener(this);
btn_scan.setText("扫描:OFF");
btn_scan.setEnabled(false);
//判断蓝牙是否已经被打开
if (mBluetoothAdapter.isEnabled())
{
//打开
btn_switch.setText("ON");
btn_see.setEnabled(true);
btn_scan.setEnabled(true);
}
see_timer = new CountDownTimer(120000,1000)
{
@Override
public void onTick( long millisUntilFinished)
{
txt_see.setText( "剩余可见时间" + millisUntilFinished / 1000 + "秒");
}
@Override
public void onFinish()
{
//判断蓝牙是否已经被打开
if (mBluetoothAdapter.isEnabled())
{
btn_see.setEnabled(true);
txt_see.setText( "设备不可见");
}
}
};
scan_timer = new CountDownTimer(12000,1000)
{
@Override
public void onTick( long millisUntilFinished)
{
txt_scan.setText( "剩余扫描时间" + millisUntilFinished / 1000 + "秒");
}
@Override
public void onFinish()
{
//判断蓝牙是否已经被打开
if (mBluetoothAdapter.isEnabled())
{
btn_scan.setEnabled(true);
//关闭扫描
mBluetoothAdapter.cancelDiscovery();
btn_scan.setText("扫描:OFF");
txt_scan.setText( "停止扫描");
}
}
};
}
@Override
protected void onDestroy() {
super.onDestroy();
android.os.Process.killProcess(android.os.Process.myPid());
}
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
switch (v.getId())
{
case R.id.button1:
{
String str = btn_switch.getText().toString();
if (str == "OFF")
{
if (!mBluetoothAdapter.isEnabled())
{
//打开蓝牙
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
txt.setText("s1");
btn_see.setEnabled(true);
btn_scan.setText("扫描:OFF");
btn_scan.setEnabled(true);
}
}
else
{
//关闭蓝牙
mBluetoothAdapter.disable();
btn_switch.setText("OFF");
mArrayAdapter.clear();
list.setAdapter(mArrayAdapter);
btn_see.setEnabled(false);
btn_scan.setEnabled(false);
}
break;
}
case R.id.button2:
{
//开启可见
Intent enableBtIntent_See = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
startActivityForResult(enableBtIntent_See, 3);
txt.setText("s1");
btn_see.setEnabled(false);
see_timer.start();
break;
}
case R.id.button3:
{
String str = btn_scan.getText().toString();
if (str == "扫描:OFF")
{
txt.setText("s5");
if (mBluetoothAdapter.isEnabled())
{
//开始扫描
mBluetoothAdapter.startDiscovery();
txt.setText("s6");
btn_scan.setText("扫描:ON");
// Create a BroadcastReceiver for ACTION_FOUND
final BroadcastReceiver mReceiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent)
{
// TODO Auto-generated method stub
String action = intent.getAction();
// When discovery finds a device
mArrayAdapter.clear();
if (BluetoothDevice.ACTION_FOUND.equals(action))
{
// Get the BluetoothDevice object from the Intent
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
// Add the name and address to an array adapter to show in a ListView
mArrayAdapter.add(device.getName() + ":" + device.getAddress());
}
list.setAdapter(mArrayAdapter);
}
};
// Register the BroadcastReceiver
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(mReceiver, filter); // Don't forget to unregister during onDestroy
scan_timer.start();
}
}
else
{
//关闭扫描
mBluetoothAdapter.cancelDiscovery();
btn_scan.setText("扫描:OFF");
scan_timer.cancel();
txt_scan.setText( "停止扫描");
}
break;
}
default:
break;
}
}
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
switch (requestCode)
{
case REQUEST_ENABLE_BT:
// When the request to enable Bluetooth returns
if (resultCode == Activity.RESULT_OK)
{
// Bluetooth is now enabled, so set up a chat session
btn_switch.setText("ON");
txt.setText("s4");
//获取蓝牙列表
Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
mArrayAdapter.clear();
// If there are paired devices
if (pairedDevices.size() > 0)
{
//txt.setText("s3");
// Loop through paired devices
for (BluetoothDevice device : pairedDevices)
{
// Add the name and address to an array adapter to show in a ListView
mArrayAdapter.add(device.getName() + ":" + device.getAddress());
}
list.setAdapter(mArrayAdapter);
}
} else
{
finish();
}
}
}
}
效果图:
相关文章推荐
- 发现问题 解决问题:用 Chrome 运行Android应用
- Android模拟器按键对应的键盘按键
- Android进行单元测试难在哪-part4
- Android中ActionBar的setDisplayHomeAsUpEnabled、setHomeButtonEnabled和setDisplayShowHomeEnabled方法的理解
- Linear Layout,Relative Layout
- Android--PendingIntent 实现发送通知notification
- Android Studio 一些使用经验
- AndroidManifest.xml android:process元素说明
- android之startActivityForResult的使用
- 【Android开发】网路编程及Internet应用-使用WebView显示网页
- Android 自定义PopupWindow以及参数传递与返回
- android SDK 更新
- Android-View
- Android EventBus发布/订阅事件总线
- Android实战简易教程-第十七枪(LayoutAnimation布局动画)
- Android和JavaScript互相调用
- Android活动条(actionbar)使用详解(二)
- Android项目全局变量的定义
- Android 基础:Fragment的介绍与应用,QQ底栏,侧滑菜单
- android屏幕适配