我觉得你这样做的方式是最好的(据我所知),这里是从科尔多瓦插件,做同样的方式一些示例代码:的
public class GetRouterIPAddress extends CordovaPlugin {
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
try {
String ip = getRouterIPAddress();
if (ip.equals("0.0.0.0")) {
callbackContext.error("No valid IP address");
return false;
}
callbackContext.success(ip);
return true;
} catch(Exception e) {
callbackContext.error("Error while retrieving the IP address. " + e.getMessage());
return false;
}
}
private String formatIP(int ip) {
return String.format(
"%d.%d.%d.%d",
(ip & 0xff),
(ip >> 8 & 0xff),
(ip >> 16 & 0xff),
(ip >> 24 & 0xff)
);
}
private String getRouterIPAddress() {
WifiManager wifiManager = (WifiManager) cordova.getActivity().getSystemService(Context.WIFI_SERVICE);
DhcpInfo dhcp = wifiManager.getDhcpInfo();
int ip = dhcp.gateway;
return formatIP(ip);
}
}