2016-03-21 3 views
0

私はlan pcで目を覚ますためにアプリケーションを作ろうとしています。私はlan pcで目を覚ますためにバイトのMACアドレスを取得します

このページで私はJavaの例を見つけました: https://www.sistemasorp.es/2005/06/13/wake-on-lan-y-magic-packet/ しかし、私はMACアドレスバイトを取得する方法に混乱しています。

バイトはどのように取得できますか?この質問に

**byte** mac[]={0x01,0x02,0x03,0x04,0x05,0x06}; 

:Webページで

String output=""; 
byte mac1_1[]={0x01,0x02,0x03,0x04,0x05,0x06}; 
output+="mac1_1= "+mac1_1.toString()+"\n"; 
Byte mac1_2[]={0x01,0x02,0x03,0x04,0x05,0x06}; 
output+="mac1_2= "+mac1_2.toString()+"\n"; 
String mac2String="010203040506"; 
byte mac2_1[]=mac2String.getBytes(); 
output+="mac2_1= "+mac2_1.toString()+"\n"; 
String mac3 = "01:02:03:04:05:06"; 
String[] macAddressParts = mac3.split(":"); 
byte[] mac3_1 = new byte[6]; 
Byte[] mac3_2 = new Byte[6]; 
for(int i=0; i<6; i++){ 
    Integer hex = Integer.parseInt(macAddressParts[i], 16); 
    mac3_1[i] = hex.byteValue(); 
    mac3_2[i] = hex.byteValue(); 
} 
output+="mac3_1= "+mac3_1.toString()+"\n"; 
output+="mac3_2= "+mac3_2.toString()+"\n"; 
System.out.println(output); 
: ( How to convert a Mac Address to a Hex and pass it to a bytearray in java

**Byte**[] macAddressBytes = new Byte[6]; 
... 
Integer hex = Integer.parseInt(macAddressParts[i], 16); 
macAddressBytes[i] = hex.byteValue(); 

(バイト対バイト)

私はこのコードを実行します

と私はこの結果を得ます:

mac1_1= [[email protected] 

mac1_2= [Ljava.lang.Byte;@52e922 

mac2_1= [[email protected] 

mac3_1= [[email protected] 

mac3_2= [Ljava.lang.Byte;@647e05 

すべてのバイトが異なります!

誰かが正しいことを知っていますか?

+1

を見ることができる= 21 <、。 –

+0

はい、今すぐ見る... –

答えて

0

お使いのデバイスからMACを取得するためにWifiManagerクラスを使用

WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);

、その後

String mac = wifiManager.getConnectionInfo().getMacAddress()

今すぐ簡単にお使いのMacの変数からメソッドgetBytes(string)を呼び出す

取得アンドロイドのmac anddresはアンドロイドのapiでしか動作しませんtoStringオブジェクトのハッシュコードではなく、値をプリントアウトしているのでアンドロイドMのためにあなたは、この変更履歴

http://developer.android.com/intl/es/about/versions/marshmallow/android-6.0-changes.html#behavior-hardware-id

関連する問題