⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 utility.java

📁 欢迎使用蓝牙联网坦克大战
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	 */
	public static String minorToName(int d, int m) {
		if (d == 0x0000)
			return "Miscellaneous";
		else if (d == 0x0100 && m == 0x00)
			return "Uncategorized";
		else if (d == 0x0100 && m == 0x04)
			return "Workstation";
		else if (d == 0x0100 && m == 0x08)
			return "Server";
		else if (d == 0x0100 && m == 0x0C)
			return "Laptop";
		else if (d == 0x0100 && m == 0x10)
			return "HandheldPcPda";
		else if (d == 0x0100 && m == 0x14)
			return "PalmPcPda";
		else if (d == 0x0100 && m == 0x18)
			return "Wearable";
		else if (d == 0x0200 && m == 0x00)
			return "Uncategorized";
		else if (d == 0x0200 && m == 0x04)
			return "Cellular";
		else if (d == 0x0200 && m == 0x08)
			return "Cordless";
		else if (d == 0x0200 && m == 0x0C)
			return "SmartPhone";
		else if (d == 0x0200 && m == 0x10)
			return "Modem";
		else if (d == 0x0200 && m == 0x14)
			return "ISDN";
		else if (d == 0x0300 && m == 0x00)
			return "FullyAvailable";
		else if (d == 0x0300 && m == 0x20)
			return "1to17%Utilized";
		else if (d == 0x0300 && m == 0x40)
			return "17to33%Utilized";
		else if (d == 0x0300 && m == 0x60)
			return "33to50%Utilized";
		else if (d == 0x0300 && m == 0x80)
			return "50to67%Utilized";
		else if (d == 0x0300 && m == 0xA0)
			return "67to83%Utilized";
		else if (d == 0x0300 && m == 0xC0)
			return "83to100%Utilized";
		else if (d == 0x0300 && m == 0xE0)
			return "NoServiceAvailable";
		else if (d == 0x0400 && m == 0x00)
			return "Uncategorized";
		else if (d == 0x0400 && m == 0x04)
			return "Headset";
		else if (d == 0x0400 && m == 0x08)
			return "HandsFree";
		else if (d == 0x0400 && m == 0x0C)
			return "(Reserved)";
		else if (d == 0x0400 && m == 0x10)
			return "Microphone";
		else if (d == 0x0400 && m == 0x14)
			return "Loudspeaker";
		else if (d == 0x0400 && m == 0x18)
			return "Headphones";
		else if (d == 0x0400 && m == 0x1C)
			return "PortableAudio";
		else if (d == 0x0400 && m == 0x20)
			return "CarAudio";
		else if (d == 0x0400 && m == 0x24)
			return "SetTopBox";
		else if (d == 0x0400 && m == 0x28)
			return "HiFiAudioDevice";
		else if (d == 0x0400 && m == 0x2C)
			return "VCR";
		else if (d == 0x0400 && m == 0x30)
			return "VideoCamera";
		else if (d == 0x0400 && m == 0x34)
			return "Camcorder";
		else if (d == 0x0400 && m == 0x38)
			return "VideoMonitor";
		else if (d == 0x0400 && m == 0x3C)
			return "VideoDisplayAndLoudspeaker";
		else if (d == 0x0400 && m == 0x40)
			return "VideoConferencing";
		else if (d == 0x0400 && m == 0x44)
			return "(Reserved)";
		else if (d == 0x0400 && m == 0x48)
			return "GamingToy";
		else if (d == 0x0500 && m == 0x00)
			return "Uncategoried";
		else if (d == 0x0500 && m == 0x04)
			return "Joystick";
		else if (d == 0x0500 && m == 0x08)
			return "Gamepad";
		else if (d == 0x0500 && m == 0x0C)
			return "RemoteControl";
		else if (d == 0x0500 && m == 0x10)
			return "SensingDevice";
		else if (d == 0x0500 && m == 0x14)
			return "DigitizerTablet";
		else if (d == 0x0500 && m == 0x18)
			return "CardReader";
		else if (d == 0x0500 && m == 0x40)
			return "Keyboard";
		else if (d == 0x0500 && m == 0x80)
			return "PointingDevice";
		else if (d == 0x0500 && m == 0xC0)
			return "KeyboardPointingDevice";
		else if (d == 0x0600 && m == 0x10)
			return "Display";
		else if (d == 0x0600 && m == 0x20)
			return "Camera";
		else if (d == 0x0600 && m == 0x40)
			return "Scanner";
		else if (d == 0x0600 && m == 0x80)
			return "Printer";
		else if (d == 0x1F00)
			return "Uncategorized(" + m + ")";
		else
			return "UnknownMinorDevice(" + m + ")";

	}

	public static String[] majorServiceToName(int d) {
		Vector v = new Vector();

		if ((d & 0x2000) > 0)
			v.addElement("LimitedDiscoverableMode");
		if ((d & 0x10000) > 0)
			v.addElement("Positioning");
		if ((d & 0x20000) > 0)
			v.addElement("Networking");
		if ((d & 0x40000) > 0)
			v.addElement("Rendering");
		if ((d & 0x80000) > 0)
			v.addElement("Capturing");
		if ((d & 0x100000) > 0)
			v.addElement("ObjectTransfer");
		if ((d & 0x200000) > 0)
			v.addElement("Audio");
		if ((d & 0x400000) > 0)
			v.addElement("Telephony");
		if ((d & 0x800000) > 0)
			v.addElement("Information");

		String[] str = new String[v.size()];
		v.copyInto(str);
		return str;

	}

	public static String attrTypeToName(int type) {
		if (type == DataElement.DATALT) {
			return "DATATL";
		} else if (type == DataElement.DATSEQ) {
			return "DATSEQ";
		} else if (type == DataElement.U_INT_4) {
			return "U_INT_4";
		} else if (type == DataElement.U_INT_1) {
			return "U_INT_1";
		} else if (type == DataElement.U_INT_2) {
			return "U_INT_2";
		} else if (type == DataElement.INT_1) {
			return "INT_1";
		} else if (type == DataElement.INT_2) {
			return "INT_2";
		} else if (type == DataElement.INT_4) {
			return "INT_4";
		} else if (type == DataElement.INT_8) {
			return "INT_8";
		} else if (type == DataElement.UUID) {
			return "UUID";
		} else if (type == DataElement.U_INT_8) {
			return "U_INT_8";

		} else if (type == DataElement.U_INT_16) {
			return "U_INT_16";

		} else if (type == DataElement.INT_16) {
			return "INT_16";

		} else if (type == DataElement.STRING) {
			return "STRING";

		} else if (type == DataElement.URL) {
			return "URL";

		} else if (type == DataElement.BOOL) {
			return "BOOL";

		} else if (type == DataElement.NULL) {
			return "NULL";
		} else {
			return "UNKNOWN_TYPE";
		}
	}

	public static String toHexString(int i) {
		String s = Integer.toHexString(i); // convert base-10 to base-16 (HEX)
		if (s.length() == 1)
			return "0x000" + s;
		else if (s.length() == 2)
			return "0x00" + s;
		else if (s.length() == 3)
			return "0x0" + s;
		else if (s.length() == 4)
			return "0x" + s;
		else
			return s;
	}

	public static String toHexString(byte[] b) {
		String v = "";
		for (int i = 0; i < b.length; i++) {
			String s = Integer.toHexString(b[i]);
			// special case, since Integer.toHexString( 0xFF ) = 0xFFFFFFFF (32 bits)
			// and we don't want that many FF, so we handle this case manually
			if (b[i] == 0xFF)
				s = "FF";
			if (s.length() == 1)
				s = "0" + s; // make '4' -> '04'

			v += s;
		}

		return "0x" + v;
	}

	public static String toHexString(long l) {

		byte[] b = new byte[8]; // long = 64 bits = 8 bytes
		b[0] = (byte) (l >> 56);
		b[1] = (byte) (l >> 48);
		b[2] = (byte) (l >> 40);
		b[3] = (byte) (l >> 32);
		b[4] = (byte) (l >> 24);
		b[5] = (byte) (l >> 16);
		b[6] = (byte) (l >> 8);
		b[7] = (byte) (l);

		// reduce the number of leading '0'
		// we reduce at most 6 byte, so we got at lesat 2 byte left
		// 0x000000000000ABCD -> 0xABCD
		// 0x00000000000000AB -> 0x00AB (at lesat 2 byte left, it look better with 2 bytes)
		// 0x00000CD0000000AB -> 0xCD0000000AB
		int len = 8;
		for (int i = 0; i < 6; i++) {
			if (b[i] == 0)
				len--;
			else
				break; // we break at the first non-zero
		}
		byte[] b2 = new byte[len];
		System.arraycopy(b, 8 - len, b2, 0, len);

		return toHexString(b2);
	}

	/*
	 public static void printObexHeaderSet( HeaderSet h )
	 {
	 try {
	 System.out.println("Print OBEX Header");
	 int[] ids = h.getHeaderList();
	 for (int i = 0; i < ids.length; i++) {
	 System.out.println("ID[" + ids[i] + "]: " + h.getHeader(ids[i]));
	 }
	 }
	 catch (Exception ex) {
	 ex.printStackTrace();
	 }

	 }
	 */
	
	public static String getSearchServicesResultMessage(int returnCode) {
        String message = null;
        
        if (returnCode == DiscoveryListener.SERVICE_SEARCH_DEVICE_NOT_REACHABLE) {
            message = "Device not reachable";
        }
        else if (returnCode == DiscoveryListener.SERVICE_SEARCH_NO_RECORDS) {
            message = "Service not available";
        }
        else if (returnCode == DiscoveryListener.SERVICE_SEARCH_COMPLETED) {
            message = "Service search completed";
        }
        else if (returnCode == DiscoveryListener.SERVICE_SEARCH_TERMINATED) {
            message = "Service search terminated";
        }
        else if (returnCode == DiscoveryListener.SERVICE_SEARCH_ERROR) {
            message = "Service search error";
        }
        return message;
	}

	public static String getInquiryCompletedResultMessage(int returnCode) {
        String message = null;
        
        if (returnCode == DiscoveryListener.INQUIRY_COMPLETED) {
            message = "Inquiry completed";
        } else if (returnCode == DiscoveryListener.INQUIRY_TERMINATED) {
            message = "Inquiry terminated";
        } else if (returnCode == DiscoveryListener.INQUIRY_ERROR) {
            message = "Inquiry error";
        }
        return message;
	}

    public static void waitBeforeReceiveData(int waitBeforeReceiveData) {
		if (waitBeforeReceiveData > 0) {
			try {
				Thread.sleep(waitBeforeReceiveData);
			} catch (InterruptedException e) {
	            log.warn("waitBeforeReceiveData: InterruptedException: " + e.getMessage());
			}
		}
    }
    
    /** Sends a message over L2CAP */
    public static void sendMessage(L2CAPConnection conn, String message) {
    	//log.debug("sendMessage: sending " + message);
        try {
            byte[] data = message.getBytes();
            int transmitMTU = conn.getTransmitMTU();
            if(data.length <= transmitMTU){
            	((L2CAPConnection) conn).send(data);
            	log.debug("sendMessage: sent " + message + ", length = " + data.length + ", data = " + data + ", MTU = " + transmitMTU);
            }else {
                log.error("sendMessage: message too long (" + data.length + " bytes): " + message);
            }
        } catch(IOException ioe) {
            log.error("sendMessage: IOException: " + ioe.getMessage());
        }
    }
    
    /** Reads a message over L2CAP */
    public static String readMessage(L2CAPConnection conn, int waitBeforeReceiveData){
    	String message = null;
    	try{
    		waitBeforeReceiveData(waitBeforeReceiveData);
    		int receiveMTU = ((L2CAPConnection) conn).getReceiveMTU();
    		byte[] data = new byte[receiveMTU];
    		int length = ((L2CAPConnection) conn).receive(data);
    		message = new String(data, 0, length);
        	log.debug("readMessage: received " + message + ", length = " + length + ", data = " + data + ", MTU = " + receiveMTU);
    	}catch(IOException e){
            log.error("readMessage: IOException: " + e.getMessage());
    	}
    	return message;
    }
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -