WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
String ipAddressStr =Formatter.formatIpAddress(ipAddress);
return ipAddressStr;
} if (Info != null && networkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiAddress.getIpAddress();
String tmpString;
【1】创建一个Android项目:使用Android Studio创建新的项目,选择适当的包名和应用程序名称。
Android 网络地址
一、
在 Android 应用开发中,网络地址(URL)的使用非常常见,无论是获取数据、上传文件还是与服务器进行交互,都需要正确处理网络地址。
二、常见的网络地址类型
类型 | 描述 | 示例 |
HTTP URL | 超文本传输协议,用于从服务器获取网页等资源。 | http://www.example.com |
HTTPS URL | 安全的超文本传输协议,在传输过程中对数据进行加密。 | https://www.secure-example.com |
FTP URL | 文件传输协议,主要用于文件的上传和下载。 | ftp://ftp.example.com/resource |
三、在 Android 中使用网络地址
(一)使用 HttpURLConnection
1、创建连接
URL url = new URL("https://api.example.com/data"); HttpURLConnection connection = (HttpURLConnection) url.openConnection();
2、设置请求方法
connection.setRequestMethod("GET");
3、获取响应码
int responseCode = connection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { // 处理响应 }
4、读取输入流
InputStream inputStream = connection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); StringBuilder stringBuilder = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { stringBuilder.append(line); } String response = stringBuilder.toString();
5、关闭连接
connection.disconnect();
(二)使用第三方库(如 Retrofit)
1、添加依赖
在build.gradle
文件中添加 Retrofit 的依赖:
implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
2、定义接口
public interface ApiService { @GET("data") Call<DataModel> getData(); }
3、创建 Retrofit 实例并调用接口
Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.example.com/") .addConverterFactory(GsonConverterFactory.create()) .build(); ApiService apiService = retrofit.create(ApiService.class); Call<DataModel> call = apiService.getData(); call.enqueue(new Callback<DataModel>() { @Override public void onResponse(Call<DataModel> call, Response<DataModel> response) { if (response.isSuccessful()) { DataModel data = response.body(); // 处理数据 } } @Override public void onFailure(Call<DataModel> call, Throwable t) { t.printStackTrace(); } });
四、相关问题与解答
问题 1:如何在 Android 中处理网络权限?
答:在 AndroidManifest.xml 文件中添加以下权限:
<uses-permission android:name="android.permission.INTERNET" />
对于 Android 6.0 及以上版本,还需要在运行时动态申请权限。
if (ContextCompat.checkSelfPermission(this, Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.INTERNET}, MY_PERMISSIONS_REQUEST_INTERNET); }
并在 onRequestPermissionsResult 方法中处理用户授权结果。
问题 2:如何判断网络连接状态?
答:可以使用 ConnectivityManager 来判断网络连接状态。
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); if (networkInfo != null && networkInfo.isConnected()) { // 网络已连接 } else { // 网络未连接 }
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1615304.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。