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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? servicediscoverylist.java

?? J2ME MIDP_Example_Applications
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
// Copyright 2004 Nokia Corporation.
//
// THIS SOURCE CODE IS PROVIDED 'AS IS', WITH NO WARRANTIES WHATSOEVER,
// EXPRESS OR IMPLIED, INCLUDING ANY WARRANTY OF MERCHANTABILITY, FITNESS
// FOR ANY PARTICULAR PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE
// OR TRADE PRACTICE, RELATING TO THE SOURCE CODE OR ANY WARRANTY OTHERWISE
// ARISING OUT OF ANY PROPOSAL, SPECIFICATION, OR SAMPLE AND WITH NO
// OBLIGATION OF NOKIA TO PROVIDE THE LICENSEE WITH ANY MAINTENANCE OR
// SUPPORT. FURTHERMORE, NOKIA MAKES NO WARRANTY THAT EXERCISE OF THE
// RIGHTS GRANTED HEREUNDER DOES NOT INFRINGE OR MAY NOT CAUSE INFRINGEMENT
// OF ANY PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OWNED OR CONTROLLED
// BY THIRD PARTIES
//
// Furthermore, information provided in this source code is preliminary,
// and may be changed substantially prior to final release. Nokia Corporation
// retains the right to make changes to this source code at
// any time, without notice. This source code is provided for informational
// purposes only.
//
// Nokia and Nokia Connecting People are registered trademarks of Nokia
// Corporation.
// Java and all Java-based marks are trademarks or registered trademarks of
// Sun Microsystems, Inc.
// Other product and company names mentioned herein may be trademarks or
// trade names of their respective owners.
//
// A non-exclusive, non-transferable, worldwide, limited license is hereby
// granted to the Licensee to download, print, reproduce and modify the
// source code. The licensee has the right to market, sell, distribute and
// make available the source code in original or modified form only when
// incorporated into the programs developed by the Licensee. No other
// license, express or implied, by estoppel or otherwise, to any other
// intellectual property rights is granted herein.


package example.btsppecho;


import java.util.Hashtable;
import java.util.Vector;
import java.util.Enumeration;

import javax.bluetooth.BluetoothStateException;
import javax.bluetooth.DataElement;
import javax.bluetooth.DeviceClass;
import javax.bluetooth.DiscoveryAgent;
import javax.bluetooth.DiscoveryListener;
import javax.bluetooth.LocalDevice;
import javax.bluetooth.RemoteDevice;
import javax.bluetooth.ServiceRecord;
import javax.bluetooth.UUID;

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.ImageItem;
import javax.microedition.lcdui.List;
import javax.microedition.lcdui.Form;

import example.btsppecho.MIDletApplication;


class ServiceDiscoveryList
    extends List
    implements CommandListener,
               DiscoveryListener,
               Runnable
{
    private final static String TITLE = "New search";
    private final static int WAIT_MILLIS = 500; // milliseconds
    private final static String[] ACTIVITY = { "",
                                               ".",
                                               "..",
                                               "...",
                                               "...." };

    private final UUID uuid;
    private final MIDletApplication midlet;
    private final Command backCommand;
    private final Command searchCommand;
    private final Command openCommand;
    private final Command stopCommand;
    private final Command logCommand;
    private final Command exitCommand;


    private final int sdTransMax;
    private final int inquiryAccessCode;

    private DiscoveryAgent discoveryAgent;
    private volatile boolean inquiryInProgress = false;
    private volatile int numServiceSearchesInProgress = 0;
    private volatile boolean aborting = false;
    private volatile Thread thread;
    private Displayable backDisplayable;

    private volatile Thread activityIndicatorThread;
    private boolean activityIndicatorRunning = false;

    private Vector unsearchedRemoteDevices = new Vector();
    private Vector transIds = new Vector();
    private Hashtable matchingServiceRecords = new Hashtable();

    private int numConnectionsAlreadyOpen = 0;


    ServiceDiscoveryList(MIDletApplication midlet,
                         String uuidString,
                         int inquiryAccessCode)
    {
        super(TITLE, List.IMPLICIT);
        this.midlet = midlet;
        uuid = new UUID(uuidString, false);
        this.inquiryAccessCode = inquiryAccessCode;

        openCommand = new Command("Open connection",
                                  Command.SCREEN,
                                  1);
        searchCommand = new Command("Search", Command.SCREEN, 2);
        logCommand = new Command("View log", Command.SCREEN, 3);
        stopCommand = new Command("Stop", Command.SCREEN, 4);
        backCommand = new Command("Back", Command.BACK, 5);
        exitCommand = new Command("Exit", Command.EXIT, 0);


        String property =
               LocalDevice.getProperty("bluetooth.sd.trans.max");
        sdTransMax = Integer.parseInt(property);

        // create discovery agent
        try
        {
            discoveryAgent =
                LocalDevice.getLocalDevice().getDiscoveryAgent();

            addCommand(logCommand);
            addCommand(exitCommand);
            addCommand(searchCommand);
            setCommandListener(this);

            start();
        }
        catch(BluetoothStateException e)
        {
            midlet.serviceDiscoveryListFatalError(
                      "Couldn't get a discovery agent: '" +
                      e.getMessage() + "'");
        }
    }


    public void addBackCommand(Displayable backDisplayable)
    {
        this.backDisplayable = backDisplayable;
        removeCommand(backCommand);
        addCommand(backCommand);
    }


    public synchronized void start()
    {
        thread = new Thread(this);
        thread.start();
    }


    public synchronized void abort()
    {
        thread = null;
    }


    public void init(int numConnectionsAlreadyOpen)
    {
        this.numConnectionsAlreadyOpen =
             numConnectionsAlreadyOpen;

        // stop any pending searches
        if (inquiryInProgress ||
            numServiceSearchesInProgress > 0)
        {
            cancelPendingSearches();
        }

        // remove any old list elements
        while (size() > 0)
        {
            delete(0);
        }
    }


    private synchronized void setInquiryInProgress(boolean bool)
    {
        inquiryInProgress = bool;
    }


    public void commandAction(Command command, Displayable d)
    {
        if (command == logCommand)
        {
            midlet.serviceDiscoveryListViewLog(this);
        }
        else if (command == searchCommand &&
                 !inquiryInProgress &&
                 (numServiceSearchesInProgress == 0))
        {
            // new inquiry started

            removeCommand(openCommand);

            // remove old device lists
            unsearchedRemoteDevices.removeAllElements();
            for (Enumeration keys = matchingServiceRecords.keys();
                 keys.hasMoreElements();)
            {
                matchingServiceRecords.remove(keys.nextElement());
            }

            // delete all old List items
            while (size() > 0)
            {
                delete(0);
            }

            try
            {
                // disable page scan and inquiry scan
                LocalDevice dev = LocalDevice.getLocalDevice();
                dev.setDiscoverable(DiscoveryAgent.NOT_DISCOVERABLE);

                String iacString =
                           LogScreen.inquiryAccessCodeString(inquiryAccessCode);
                LogScreen.log("startInquiry (" +
                              iacString + ")\n");

                //startActivityIndicator();
                // this is non-blocking
                discoveryAgent.startInquiry(inquiryAccessCode, this);

                setInquiryInProgress(true);
                addCommand(stopCommand);
                removeCommand(searchCommand);
            }
            catch (BluetoothStateException e)
            {
                addCommand(searchCommand);
                removeCommand(stopCommand);
                midlet.serviceDiscoveryListError(
                           "Error during startInquiry: '" +
                           e.getMessage() + "'");
            }
        }
        else if (command == stopCommand)
        {
            // stop searching
            if (cancelPendingSearches())
            {
                setInquiryInProgress(false);
                removeCommand(stopCommand);
                addCommand(searchCommand);
            }
        }
        else if (command == exitCommand)
        {
            midlet.serviceDiscoveryListExitRequest();
        }
        else if (command == openCommand)
        {
            int size = this.size();
            boolean[] flags = new boolean[size];
            getSelectedFlags(flags);
            Vector selectedServiceRecords = new Vector();
            for (int i=0; i < size; i++)
            {
                if (flags[i])
                {
                    String key = getString(i);
                    ServiceRecord rec =
                        (ServiceRecord) matchingServiceRecords.get(key);
                    selectedServiceRecords.addElement(rec);
                }
            }

            // try to perform an open on selected items
            if (selectedServiceRecords.size() > 0)
            {
                String value = LocalDevice.getProperty(
                                   "bluetooth.connected.devices.max");
                int maxNum = Integer.parseInt(value);

                int total = numConnectionsAlreadyOpen +
                            selectedServiceRecords.size();
                if (total > maxNum)
                {
                    midlet.serviceDiscoveryListError(
                               "Too many selected. " +
                               "This device can connect to at most " +
                               maxNum + " other devices");
                }
                else
                {
                    midlet.serviceDiscoveryListOpen(
                               selectedServiceRecords);
                }
            }
            else
            {
                midlet.serviceDiscoveryListError(
                          "Select at least one to open");
            }
        }
        else if (command == backCommand)
        {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美曰成人黄网| 一本久久精品一区二区| 国产喂奶挤奶一区二区三区| 国产美女一区二区三区| 国产精品美女久久久久久| 欧美在线高清视频| 狠狠色综合播放一区二区| 亚洲人成小说网站色在线| 911精品产国品一二三产区| 岛国一区二区三区| 蜜桃视频在线观看一区| 亚洲毛片av在线| 国产免费成人在线视频| 91蜜桃在线免费视频| 青青草一区二区三区| 国产精品国产三级国产有无不卡 | 久久九九影视网| 欧美性色综合网| 成人激情图片网| 久久av资源网| 午夜视频在线观看一区| 亚洲欧洲99久久| 精品国产123| 欧美日韩国产另类一区| 99久久99久久精品国产片果冻 | 高清国产一区二区| 久久国产欧美日韩精品| 婷婷综合五月天| 亚洲一级二级在线| 中文字幕制服丝袜一区二区三区 | 日韩av网站免费在线| 一区二区三区丝袜| 亚洲品质自拍视频| 一区精品在线播放| 亚洲午夜电影网| 欧美日本精品一区二区三区| 欧美性videosxxxxx| 99在线精品免费| 91麻豆swag| 91成人看片片| 精品视频1区2区3区| 8v天堂国产在线一区二区| 4hu四虎永久在线影院成人| 精品视频免费看| 91精品免费观看| 精品免费一区二区三区| 中文文精品字幕一区二区| 国产精品美女一区二区| 亚洲精品高清视频在线观看| 亚洲成a人v欧美综合天堂| 天堂午夜影视日韩欧美一区二区| 日韩高清不卡一区二区三区| 紧缚捆绑精品一区二区| 国产成a人无v码亚洲福利| 91亚洲永久精品| 欧美日韩免费电影| 欧美成人女星排名| 亚洲人成精品久久久久| 日韩国产欧美三级| 国产成人精品综合在线观看| 在线观看国产日韩| 欧美r级在线观看| 中文字幕一区二区三| 午夜精品一区二区三区三上悠亚| 理论片日本一区| 99精品国产一区二区三区不卡| 欧美日韩免费观看一区二区三区| 精品久久久久99| 亚洲图片一区二区| 国产主播一区二区三区| 色88888久久久久久影院按摩| 欧美一区二区视频在线观看2022| 国产精品久久久爽爽爽麻豆色哟哟| 性做久久久久久免费观看欧美| 国产在线一区观看| 欧美日韩激情一区| 亚洲欧美自拍偷拍色图| 国产自产v一区二区三区c| 欧美美女网站色| 亚洲欧美激情插 | 日韩欧美综合在线| 洋洋av久久久久久久一区| 成人在线一区二区三区| 2020国产精品自拍| 青娱乐精品视频| 欧美日韩国产天堂| 一区二区三区日韩| 99精品国产91久久久久久| 久久精品日产第一区二区三区高清版| 午夜精品免费在线| 欧洲一区二区av| 一区二区三区美女视频| 99这里只有精品| 国产精品黄色在线观看| 经典三级一区二区| 日韩精品一区二区三区蜜臀 | 亚洲摸摸操操av| 岛国精品在线观看| 国产精品国产三级国产专播品爱网 | 久久精品一区八戒影视| 国产一区二区三区国产| 久久久久久久久久久久电影| 国产综合色精品一区二区三区| 精品国产成人系列| 成人黄色国产精品网站大全在线免费观看| 久久久久久一级片| 成人深夜在线观看| 亚洲欧洲日产国产综合网| 色婷婷久久久综合中文字幕| 亚洲激情在线激情| 欧美日韩高清一区二区不卡| 免费在线一区观看| 久久这里只有精品首页| 成人18精品视频| 天天色综合成人网| 久久综合九色综合欧美98| 成人免费看片app下载| 悠悠色在线精品| 日韩午夜精品电影| 成人美女视频在线看| 亚洲在线视频网站| 欧美成人乱码一区二区三区| www.久久久久久久久| 亚洲国产成人高清精品| 日韩美女视频一区二区在线观看| 国产成人丝袜美腿| 日韩黄色在线观看| 国产精品久久久久久亚洲毛片| 91精品1区2区| 激情成人综合网| 亚洲综合免费观看高清完整版在线 | 视频精品一区二区| 国产精品久久久久久久久久免费看| 欧美影视一区二区三区| 国产在线精品国自产拍免费| 亚洲久草在线视频| 国产欧美综合在线| 欧美日韩激情在线| 91免费看片在线观看| 国产最新精品精品你懂的| 亚洲国产一区在线观看| 中文幕一区二区三区久久蜜桃| 日韩欧美精品在线| 欧美唯美清纯偷拍| 色哟哟欧美精品| 成人不卡免费av| 国产成人8x视频一区二区| 91精品国产综合久久久久久| 色欧美日韩亚洲| 91玉足脚交白嫩脚丫在线播放| 国产精品69毛片高清亚洲| 久久国产剧场电影| 精品一区二区久久| 久久精品99国产国产精| 美女高潮久久久| 麻豆91在线播放免费| 蜜桃视频一区二区三区在线观看| 亚洲h在线观看| 日韩av电影天堂| 久久精品国产亚洲a| 精品一区二区在线免费观看| 激情文学综合网| 粉嫩嫩av羞羞动漫久久久| 国产精品羞羞答答xxdd| 国产精品1024| 成人激情动漫在线观看| 91国产福利在线| 欧美日韩精品一区二区三区| 欧美三级电影在线看| 欧美一区午夜视频在线观看| 日韩一级大片在线观看| 欧美不卡在线视频| 欧美国产一区二区| 亚洲人一二三区| 石原莉奈一区二区三区在线观看 | 国产乱码精品一品二品| 风流少妇一区二区| 色88888久久久久久影院按摩| 欧美日韩视频专区在线播放| 欧美一区中文字幕| 中文在线免费一区三区高中清不卡| 国产精品久99| 亚洲18色成人| 国产一区91精品张津瑜| 97成人超碰视| 欧美精品自拍偷拍动漫精品| 26uuu另类欧美亚洲曰本| 国产精品久久久久三级| 日日夜夜一区二区| 成人动漫一区二区| 日韩一区二区三区免费观看| 中文成人av在线| 日韩av高清在线观看| 成人福利视频在线| 欧美mv日韩mv国产| 一区二区三区四区国产精品| 久久成人免费网| 欧美色手机在线观看| 国产欧美精品一区aⅴ影院 | 亚洲三级在线观看|