私はアンドロイドデバイスがwifi経由で接続するwifiホットスポット(他のコンピュータから)のIPを取得したい、androidのIPローカルではありません。私は実デバイスでアプリケーションを実行します。 私はすべてのWi-Fiをスキャンして、それらの名前を取得できます。もちろんアンドロイドのwifiホットスポットからIPを取得する
public class WifiConnectorActivity extends Activity {
TextView mainText;
WifiManager mainWifi;
WifiReceiver receiverWifi;
List<ScanResult> wifiList;
StringBuilder sb = new StringBuilder();
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mainWifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);
mainText = (TextView) findViewById(R.id.text);
mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
receiverWifi = new WifiReceiver();
if(!mainWifi.isWifiEnabled()){
mainWifi.setWifiEnabled(true);
}
registerReceiver(receiverWifi, new IntentFilter(
WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
mainWifi.startScan();
mainText.setText("\nStarting Scan...\n");
}
class WifiReceiver extends BroadcastReceiver {
public void onReceive(Context c, Intent intent) {
StringBuilder sb = new StringBuilder();
wifiList = mainWifi.getScanResults();
for(int i = 0; i < wifiList.size(); i++){
sb.append(new Integer(i+1).toString() + ".");
sb.append((wifiList.get(i)).toString());
sb.append("\n");
}
mainText.setText(sb);
}
}
}
、私が使用してIPがローカルにこのコードを取得することができます
public static String getLocalIpAddressString() {
try {
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()) {
return inetAddress.getHostAddress().toString();
}
}
}
} catch (Exception ex) {
Log.e("IPADDRESS", ex.toString());
}
return null;
}
例えば、私が見ることができるIPのAndroidデバイスのローカルは192.168.2.101ですが、どのように無線LANのIPを取得しますホットスポットはコードで192.168.2.1です。 ありがとう!
ありがとうございます!しかし、問題は私がIPアドレスを持っていない限り、私はそれを接続するためにソケットを使用しなければならない、私は(私は無線LANの名前を使用しようとするが、それは動作しません)どのように示唆を持っているかわからない? – R4j
何に接続しますか? – Brad
wifi経由でリモートのPCに接続します(シャットダウン、再起動、リモートのPowerPointスライドなど...)。私はアンドロイドdevide(上記のような)とPCをテストするために静的IPを使用しようとしました。出来た。問題は、コードからPCのIPを取得する方法がわからないことです。 – R4j