天天看點

android不斷開關藍牙

文章的思路就是在主線程中設定一個按鈕,啟動一個線程,在子線程中進行線程的耗時操作,最後需要記住添加藍牙權限

AndroidManifest.xml中加入

      <uses-permission android:name="android.permission.BLUETOOTH" />

      <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />  

package com.example.testcamera;

import java.io.IOException;

import android.R.anim;
import android.support.v7.app.ActionBarActivity;
import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.content.Intent;
import android.content.res.Configuration;
import android.hardware.Camera;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;


public class MainActivity extends Activity {
Button startButton;
TextView textView;
Handler handle = new Handler() {
	 
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        textView.setText(" "+msg.arg1);
    }
    
};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        startButton=(Button) findViewById(R.id.startButton);
        textView=(TextView) findViewById(R.id.tv);
     
        startButton.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				MyThread myThread=new MyThread();
				myThread.start();

			}
		});
    }
    class MyThread extends Thread {
   	 
        @Override
        public void run() {
             // 耗時操作           
        	int num=0;
        	while(true){
        		 BluetoothAdapter mBluetoothAdapter = BluetoothAdapter  
        	                .getDefaultAdapter();  
                  mBluetoothAdapter.disable();//關閉藍牙  
                  String string1=mBluetoothAdapter.getAddress();
                  
                  Log.e("test", "關閉"+mBluetoothAdapter.getState());
            try {
				Thread.sleep(15000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
            mBluetoothAdapter.enable();
           
            String string=mBluetoothAdapter.getAddress();
            Message msg = new Message();
           
            num++;
            msg.arg1=num;
            Log.e("bluetest", "開啟"+mBluetoothAdapter.getState());
            Log.e("bluetest", string);
            Log.e("bluetest","總的次數"+num);
            handle.sendMessage(msg);
            try {
				Thread.sleep(15000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
            super.run();
        	}
        }
        
        
    }

}
           

這裡我在主界面更新開關的次數,也将開關的狀态的傳回值,打開的傳回值,藍牙的mac位址,和開關的次數輸出到了log之中。

這裡,謝謝我同僚b.z對我的提醒

繼續閱讀