亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? bluetoothdiscovery.java

?? 一個(gè)有關(guān)游戲方面的應(yīng)用程序,希望大家指點(diǎn)啊,呵呵.
?? JAVA
?? 第 1 頁 / 共 3 頁
字號(hào):
package game.bluetooth;

import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import java.io.*;
import java.util.Vector;
import javax.bluetooth.*;
import java.util.Timer;
import java.util.TimerTask;


/** 
 * BluetoothDiscoery類提供了易用的API用來搜索設(shè)備與服務(wù)
 * 主要的方法是searchService和waitOnConnection
 * searchService方法用來搜索鄰近的藍(lán)牙設(shè)備并且與提供對(duì)應(yīng)服務(wù)的設(shè)備建立連接
 * waitOnConnection方法則是用來提供服務(wù)并且等待其它設(shè)備與本地設(shè)備建立連接
 * 在這兩個(gè)方法使用前,讀者應(yīng)該提供備用戶名和服務(wù),這里有兩個(gè)方法:setName和setServiceUUID方法來設(shè)置
 * 這里使用LIAC(有限查詢)服務(wù)模式,
 */

public class BluetoothDiscovery
    extends Alert
implements CommandListener
{
    static int dev_num = 0;//用來判斷設(shè)備發(fā)現(xiàn)只調(diào)用一次,可發(fā)現(xiàn)多個(gè),結(jié)果為真
    
    // Attribute ID for service name for base language
    static private final int SERVICE_NAME_BASE_LANGUAGE = 0x0100;
    
    // 指定查找設(shè)備為手機(jī),0x0200是手機(jī)在藍(lán)牙通訊中指定的特征碼    
    static private final int MAJOR_DEVICE_CLASS_PHONE = 0x0200;
    
    //四種服務(wù)發(fā)現(xiàn)類型,本例程中只使用了一種:SEARCH_ALL_DEVICES_SELECT_ONE
    
    static public final int SEARCH_CONNECT_FIRST_FOUND = 1;    
    static public final int SEARCH_CONNECT_ALL_FOUND = 2;    
    static public final int SEARCH_ALL_DEVICES_SELECT_ONE = 3;
    static public final int SEARCH_ALL_DEVICES_SELECT_SEVERAL = 4;
    
    // 一臺(tái)Master能夠連接的最大藍(lán)牙設(shè)備數(shù)
    static private final int BLUETOOTH_MAX_DEVICES = 7;

    // MainMIDlet傳入的display對(duì)象
    private Display display;  

    //本地設(shè)備的引用
    private LocalDevice localDevice = null; 
    
    //用來保存發(fā)現(xiàn)模式的變量
    private int previousDiscoverabilityMode = -1; 
    
    private String serviceUUID = null;
    
    private String localName = null;

    //服務(wù)代理和Discovery監(jiān)聽器,用來發(fā)現(xiàn)設(shè)備與服務(wù)用
    private DiscoveryAgent discoveryAgent; 
    private Listener listener;
    
    //發(fā)現(xiàn)模式
    private int searchType;    
    
//  trans action id for current service search, if there is no serv search this is -1
    private int serviceSearchTransId;
    
    //返回服務(wù)的url字符串向量,可用來建立連接
    private Vector urlStrings; 
    
    //所有發(fā)現(xiàn)的服務(wù)記錄向量
    private Vector foundServiceRecords; 
    private int maxDevices; 
    
    //一個(gè)顯示所有己連接設(shè)備的列表
    private DeviceList deviceList;  
    
    //警告字符串,如沒有設(shè)備或服務(wù)被發(fā)現(xiàn)時(shí)通知玩家
    private String warning; 

    // notifier建立服務(wù)時(shí)使用
    private StreamConnectionNotifier notifier;
    
    // 建立連接的對(duì)象數(shù)組
    private BluetoothConnection[] btConnections;  

    // 代表BluetoothDiscovery本身,方便內(nèi)部類訪問
    private BluetoothDiscovery  root;

    // 進(jìn)度條對(duì)象的引用
    private InqProgressBar progressBar;

    private Object block_m;	// Master端的線程同步對(duì)象
    private Object block_s;	// Slave端的線程同步對(duì)象
    private Object block_ss;	// 服務(wù)查找時(shí)的阻塞線程
    private Object block_notifier;   // 


    /** 
     * BluetoothDiscovery類的構(gòu)造方法,
     * disp是Display類的實(shí)例,
     * 因?yàn)橥婕倚枰ㄟ^BluetoothDiscovery的內(nèi)部類與Display的交互了解服務(wù)發(fā)現(xiàn)狀態(tài) 
     *
     */
    public BluetoothDiscovery( Display disp )
    {	
        super( "" );
        
        root = this;
        display = disp;
        // Initialize
        progressBar = null;
        deviceList = null;
        // 構(gòu)造block_m、block_s、block_ss、block_notifier對(duì)象來進(jìn)行本地設(shè)備與遠(yuǎn)端設(shè)備的同步
        block_m = new Object();
        block_s = new Object();
        block_ss = new Object();
        block_notifier = new Object();

        try
        {  
        	// 獲得本地設(shè)備
            localDevice = LocalDevice.getLocalDevice();
            // 得到本地設(shè)備最大可連接遠(yuǎn)端設(shè)備數(shù)
            maxDevices = Integer.parseInt( localDevice.getProperty( "bluetooth.connected.devices.max" ) );
            
            if( maxDevices > BLUETOOTH_MAX_DEVICES )
            {   // 最多可連接數(shù)為7
            	// BLUETOOTH_MAX_DEVICES=7
                maxDevices = BLUETOOTH_MAX_DEVICES;
            }
        }
        catch(Exception e)
        {
            localDevice = null;
        }
    }   

    private void closeNotifier()
    {
        synchronized( block_notifier )
        {
            if( notifier != null )
            {
                try
                {
                    notifier.close();
                }
                catch(Exception e)
                {
                    String message = "Error trying to close notifier" +
                                     e.getMessage();
                    ErrorScreen.showError(message, display.getCurrent());
                }
                notifier = null;
            }
        }
    }

    public void commandAction(Command c, Displayable s)
    {
        switch( c.getCommandType() )
        {
            case Command.CANCEL:                
                try
                {                
                    if( listener != null )
                    {   
                        // 通知用戶取消搜索
                        Alert a = new Alert( "", "Search cancelled", null, AlertType.INFO );
                        a.setTimeout( 10000 );  
                        display.setCurrent( a );
                        // 取消搜索
                        discoveryAgent.cancelInquiry( listener );
                        // 取消服務(wù)搜索
                        // 取消服務(wù)搜索需要使用一個(gè)新的線程來結(jié)束
                        // 不然的話上面的Alert畫面就不會(huì)顯示出來
                        waitOnServSearchTermination w = new waitOnServSearchTermination();
                        w.start();
                    }
                    
                    listener = null;
                 
                    closeNotifier();
                    // 停止progressBar
                    if( progressBar != null )
                    {
                        progressBar.stop();
                        progressBar = null;
                    }
                }
                catch(Exception e)
                {
                    String message = "Error trying to cancel: " +
                                     e.getMessage();
                    ErrorScreen.showError(message, display.getCurrent());
                }
                break;
        }//end switch
    }

    /**
     * 保存發(fā)現(xiàn)模式,用來以后的模式恢復(fù) 
     */
    private void saveDiscoverability()
    {
        try
        {
            previousDiscoverabilityMode =
                LocalDevice.getLocalDevice().getDiscoverable();
        }
        catch(Exception e)
        { }
    }

    /**
     * 重新設(shè)置發(fā)現(xiàn)模式,把以前保存的模式設(shè)置為當(dāng)前發(fā)現(xiàn)模式
     */
    private void restoreDiscoverability()
    {
        try
        {
            if( previousDiscoverabilityMode != -1 )
            {
                localDevice.setDiscoverable( previousDiscoverabilityMode );
            }
        }
        catch( Exception e )
        { }
    }


    /** 
     * 設(shè)置代表本地玩家的用戶名
     */
    public void setName( String ln )
    {
        localName = ln;
    }

    /**
     * 設(shè)置UUID值
     */
    public void setServiceUUID( String UUID )
    {         
        serviceUUID = UUID;        
    }

    public BluetoothConnection[] searchService( int st )
        throws BluetoothStateException, InterruptedException, IOException
    {
        StreamConnection con;
        DataElement de;
        String rname;

        // serviceSearchTransId為服務(wù)搜索號(hào)(transID)
        serviceSearchTransId = -1;

        searchType = st;

        foundServiceRecords = new Vector();
        urlStrings = new Vector();

        // 得到服務(wù)代理類對(duì)象,進(jìn)行設(shè)備與服務(wù)的發(fā)現(xiàn)
        discoveryAgent = localDevice.getDiscoveryAgent();

        // 構(gòu)造Discovery監(jiān)聽器對(duì)象
        listener = new Listener();

        // 顯示搜索進(jìn)度條
        progressBar = new InqProgressBar( "Search Devices...", 105 );
        
        warning = "";

        // 異步調(diào)用設(shè)備發(fā)現(xiàn)(startInquiry)方法,這里使用block_m對(duì)象進(jìn)行線程阻塞
        synchronized( block_m )
        {
            discoveryAgent.startInquiry( DiscoveryAgent.LIAC, listener );         
            block_m.wait();
        }

        deviceList = null;

        if( progressBar != null )
        {
            progressBar.stop();
        }
        
        if( ! warning.equals( "" ) )
        {   
            Alert al = new Alert( null, warning, null, AlertType.INFO );
            
            al.setTimeout( 2000 );
            display.setCurrent( al );
            
            synchronized( al )
            {
                try
                {
                    al.wait( 2000 );
                }
                catch(InterruptedException e )
                { }
            }
        }

        // 構(gòu)造一個(gè)列表
        btConnections = new BluetoothConnection[urlStrings.size()];
        
        // 判斷是否有設(shè)備被發(fā)現(xiàn),如發(fā)現(xiàn),進(jìn)行下一步操作
        if( urlStrings.size() > 0 )
        {   

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品区一区二区三区| 一区二区三区在线免费播放 | 91网站在线播放| 91精品婷婷国产综合久久性色| 久久精品视频一区二区三区| 性欧美大战久久久久久久久| www.亚洲免费av| 久久久久成人黄色影片| 婷婷六月综合网| 色老头久久综合| 国产精品福利一区| 成人av午夜影院| 中文字幕av一区二区三区| 久久99热这里只有精品| 欧美精品乱人伦久久久久久| 一区二区三区高清在线| 欧美精品亚洲二区| 捆绑调教美女网站视频一区| 欧美极品少妇xxxxⅹ高跟鞋 | 欧美浪妇xxxx高跟鞋交| 麻豆91精品视频| 91麻豆精品91久久久久同性| 久久er精品视频| 亚洲欧美一区二区三区极速播放| 岛国精品在线播放| 亚洲国产精华液网站w| 欧美自拍偷拍一区| 日韩高清一区二区| 欧美日韩一区二区三区在线 | 国产精品美女一区二区在线观看| 一本大道av一区二区在线播放| 欧美国产亚洲另类动漫| 欧美日韩色一区| 懂色av中文字幕一区二区三区| 国产拍欧美日韩视频二区| 国产精品自拍在线| 中文字幕欧美日本乱码一线二线| 欧美性三三影院| 人人超碰91尤物精品国产| 91精品国产91久久综合桃花| 日本伊人午夜精品| 中文字幕一区二区三区色视频| 99久久免费国产| 亚洲成人激情av| 国产精品午夜在线观看| 91精品国产丝袜白色高跟鞋| av在线不卡免费看| 国产在线国偷精品免费看| 国产精品人成在线观看免费| 欧美一区二区三区视频| 91老师国产黑色丝袜在线| 国产一区二区在线看| 五月激情综合色| 亚洲免费伊人电影| 日本一区二区视频在线| 26uuu亚洲综合色| 成人av在线播放网址| 黄色日韩网站视频| 中文字幕一区二区不卡| 久久精品欧美日韩精品| 精品美女在线播放| 色综合网站在线| 麻豆精品久久精品色综合| 亚洲国产精品一区二区久久| 欧美不卡视频一区| 欧美一级黄色片| 91视频一区二区| 高清免费成人av| 国产91富婆露脸刺激对白| 久久99最新地址| 九一久久久久久| 亚洲一区二区三区美女| 国产色产综合色产在线视频| 日韩欧美国产一区二区在线播放 | 91蝌蚪porny| 93久久精品日日躁夜夜躁欧美| 国产成人精品亚洲午夜麻豆| 亚洲一区二区欧美| 亚洲高清免费在线| 亚洲国产成人tv| 天天操天天综合网| 免费xxxx性欧美18vr| 免费观看久久久4p| 国产一区二区三区蝌蚪| 国产精品资源网| av亚洲精华国产精华精| 91在线国产福利| 在线免费亚洲电影| 91精品免费观看| 精品国产电影一区二区| 欧美在线视频日韩| 欧美日韩国产精品自在自线| 99天天综合性| 欧美视频完全免费看| 3d动漫精品啪啪一区二区竹菊| 91精品国产综合久久国产大片| 91精品国产综合久久香蕉麻豆| 日韩一区二区在线观看视频播放| 精品国产乱码久久久久久老虎| 久久久五月婷婷| 亚洲欧美在线视频观看| 亚洲成av人片一区二区| 韩国一区二区在线观看| 99久久婷婷国产综合精品电影| 精品视频在线看| 日韩免费高清电影| 国产精品国产a| 亚洲成av人片观看| 国产精品1024| 欧美揉bbbbb揉bbbbb| 26uuu国产电影一区二区| 中文字幕日韩欧美一区二区三区| 亚洲国产精品一区二区久久 | 国产盗摄一区二区| 欧美影视一区二区三区| www国产成人| 亚洲高清视频的网址| 国产精品一区2区| 欧美美女直播网站| 国产欧美日韩亚州综合| 午夜天堂影视香蕉久久| 国产精品1区2区3区| 欧美久久久久久久久中文字幕| 久久久久国产精品免费免费搜索| 亚洲午夜电影网| 国产成人免费网站| 欧美精品视频www在线观看 | 在线免费不卡电影| www激情久久| 丝袜诱惑制服诱惑色一区在线观看 | 亚洲一区二区美女| 国产乱码精品一区二区三区五月婷 | 555夜色666亚洲国产免| 国产欧美一区二区精品性色超碰 | 日韩精品专区在线| 亚洲精品乱码久久久久久黑人| 亚洲精品久久久久久国产精华液| 日本欧美一区二区| 色先锋aa成人| 国产精品私人影院| 韩国av一区二区三区四区 | 久久狠狠亚洲综合| 欧美日韩一区二区欧美激情| 中文字幕欧美日本乱码一线二线| 久久精工是国产品牌吗| 欧美理论在线播放| 亚洲一区二区欧美激情| 91亚洲精华国产精华精华液| 国产亚洲欧洲997久久综合| 美女在线一区二区| 51久久夜色精品国产麻豆| 亚洲综合免费观看高清完整版在线 | 亚洲综合色区另类av| 99精品黄色片免费大全| 国产精品另类一区| 国产精品一级黄| 国产网站一区二区三区| 国产精品一区久久久久| 日韩视频一区二区在线观看| 日韩精品色哟哟| 8v天堂国产在线一区二区| 香蕉久久一区二区不卡无毒影院| 在线免费一区三区| 亚洲一级片在线观看| 欧美日韩精品欧美日韩精品一综合| 亚洲精品伦理在线| 欧美私模裸体表演在线观看| 亚洲嫩草精品久久| 91国在线观看| 亚洲无人区一区| 欧美日韩精品电影| 天堂蜜桃91精品| 精品少妇一区二区三区免费观看| 青娱乐精品视频| 精品久久久久久亚洲综合网| 美女mm1313爽爽久久久蜜臀| 精品福利一二区| 岛国一区二区在线观看| 亚洲欧洲99久久| 欧美人牲a欧美精品| 日韩激情一区二区| 欧美tickling挠脚心丨vk| 激情综合网天天干| 中文字幕不卡在线播放| 91免费在线播放| 亚洲成人1区2区| 精品人在线二区三区| 国产精品1区2区3区| 亚洲久本草在线中文字幕| 欧美日韩精品二区第二页| 久久国产精品72免费观看| 国产精品天干天干在观线| 91久久免费观看| 蜜臀av一区二区在线免费观看| 国产日韩欧美亚洲| 91国内精品野花午夜精品| 日韩av一区二区在线影视| 久久久久国产成人精品亚洲午夜 | 天天综合色天天| 国产天堂亚洲国产碰碰|