2014年6月7日土曜日

WiFi接続その2

Androidの端末のIPを見るのが面倒で、そのIPを間違いなく手入力するのが面倒だなーって、自動的にできないかなと思ってつまらないアプリを作った。

image

再表示釦を押すとWiFi接続のIPアドレスなどが表示される。

その後、

REM set ADB connection to IP 
ChangeAdbConnectionToTcpIp 192.168.13.135


のようなテキストを共有しようとする。IPアドレスは先ほど表示したIPアドレスである。


このとき、共有先をエディタ(Jota+など)にすると、所謂テキストコピーされる。


Jota+でファイル共有させると、ファイル保存(画面有り)して、共有先の問い合わせとなるので、bluetoothを選択して、bluetoothをPCと接続しておけば、そこで保存したファイルをPCに送ることができる。


REM set ADB connection to IP.txt


上記のテキストを受け取ったPCは拡張子を.batにする。


REM set ADB connection to IP.bat


そして、


http://2den.blogspot.jp/2014/06/android-debug-bridge-wifi.html


で作ったバッチファイルを


@echo off
REM ----------------------------
REM ----------------------------
set ADB_IPADR=%1
echo %1
C:
cd C:\Android\android-sdk\platform-tools
set ADBHOST=%ADB_IPADR%
adb kill-server
timeout /T 2
adb start-server
timeout /T 2
adb connect %ADB_IPADR%:55555
timeout /T 10
adb devices
pause


として、


ChangeAdbConnectionToTcpIp.bat として保存しておく。


REM set ADB connection to IP.batを実行すると、WiFiデバッグが設定される。


 


まあ、ここまでやるのなら手で操作すればってことだよね。


まあ、参考のため、アプリのソースの核だけでも。


    WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
    if (wifiManager == null)
    {
        Toast.makeText(this, "WIFIアクセスできませんでした。", Toast.LENGTH_LONG).show();
        return;
    }
    WifiInfo w_info = wifiManager.getConnectionInfo();
    int ip_addr_i = w_info.getIpAddress();
    String ip_addr = ((ip_addr_i >> 0) & 0xFF) + "." + ((ip_addr_i >> 8) & 0xFF) + "." + ((ip_addr_i >> 16) & 0xFF) + "." + ((ip_addr_i >> 24) & 0xFF);


    ((TextView)findViewById(R.id.txtIP)).setText(ip_addr);
    ((TextView)findViewById(R.id.txtSsid)).setText(w_info.getSSID());
    ((TextView)findViewById(R.id.txtMac)).setText(w_info.getMacAddress());
    String netid = "";
    netid = String.format("%d", w_info.getNetworkId());
    ((TextView)findViewById(R.id.txtNetId)).setText(netid);
    Toast toast = Toast.makeText(this, "表示を更新しました。", Toast.LENGTH_SHORT);
    toast.setGravity(Gravity.TOP, 0, 0);
    toast.show();
    String strADBcmd = "";
    strADBcmd = String.format("REM set ADB connection to IP \r\nChangeAdbConnectionToTcpIp %s\r\n", ip_addr);
    Intent sendIntent = new Intent();
    sendIntent.setAction(Intent.ACTION_SEND);
    sendIntent.putExtra(Intent.EXTRA_TEXT, strADBcmd);
    sendIntent.setType("text/txt");
    startActivity(sendIntent);


 


でも、うまく行かない時がある。結局、USB接続しなおして、 adb tcpip 55555をやらないとうまくいかないな。

0 件のコメント:

コメントを投稿