Android-连接网络

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android-连接网络相关的知识,希望对你有一定的参考价值。

1:首先先编写布局文件的代码:

 1 <TextView
 2         android:id="@+id/et1"
 3         android:layout_width="wrap_content"
 4         android:layout_height="wrap_content"
 5         android:text="@string/wang"
 6          />
 7 
 8     
 9     <Button 
10         android:id="@+id/bt"
11         android:layout_below="@id/et1"
12         android:layout_centerHorizontal="true"
13         android:layout_width="wrap_content"
14         android:layout_height="wrap_content"
15         android:text="@string/but"
16         />

 

2;编写源文件代码:

 1 import android.app.Activity;
 2 import android.content.Context;
 3 import android.net.ConnectivityManager;
 4 import android.net.NetworkInfo;
 5 import android.os.Bundle;
 6 import android.view.View;
 7 import android.view.View.OnClickListener;
 8 import android.widget.Button;
 9 import android.widget.TextView;
10 public class MainActivity extends Activity {
11 
12     private Context context;
13     private ConnectivityManager cm;
14     
15     @Override
16     protected void onCreate(Bundle savedInstanceState) {
17         super.onCreate(savedInstanceState);
18         setContentView(R.layout.activity_main);
19         context = this;
20         //先找到控件。
21         Button bt = (Button) findViewById(R.id.bt);
22         bt.setOnClickListener(new OnClickListener() {
23             
24             @Override
25             public void onClick(View v) {
26                 //获取Activity的当前对象。这样才能获取到一些参数。
27                 Activity c = (Activity)context;
28                 //定义一个获取字符串的资源文件的字段。
29                 String netstatus;
30                 //定义一个获取颜色资源文件的字段。
31                 int color;
32                 //获取到textview。
33                 TextView tv = (TextView) findViewById(R.id.et1);
34                 //获取到网络连接的管理者。
35                  cm = (ConnectivityManager)c.getSystemService(CONNECTIVITY_SERVICE);
36                 //获取网络的状态信息。
37                 NetworkInfo networkinfo = cm.getActiveNetworkInfo();
38                 //判断是否有网络。
39                 if(networkinfo==null){
40                     //提示没有网络。
41                     netstatus = c.getResources().getString(R.string.networdinfo0);
42                     color = c.getResources().getColor(R.color.red);
43                     //System.out.println(networkinfo.getDetailedState());
44                     //System.out.println(networkinfo.getReason());
45                 }else{
46                     //提示有网络的做法。
47                     netstatus = c.getResources().getString(R.string.networdinfo1);
48                     color = c.getResources().getColor(R.color.green);
49                     //System.out.println(networkinfo.getDetailedState());
50                 }
51                 
52                 //设置文本内容。
53                 tv.setText(netstatus);
54                 tv.setBackgroundColor(color);
55             }
56         });
57         
58     }
59 
60    
61 }

 

3:很重要的一点是:要获取权限。如果没有获取到权限的话,直接不能获取到权限。资源文件是直接用句柄打点获取到的。

技术分享

直接在AndroidManifest.xml文件中加入这两句代码。

//获取internet访问权限
<uses-permission android:name="android.permission.INTERNET" android:maxSdkVersion="19"/>
//允许程序访问有关GSM网络信息 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" android:maxSdkVersion="19"/>

 

字符串资源文件代码:

 1 <resources>
 2 
 3     <string name="app_name">连接网络</string>
 4     <string name="hello_world">Hello world!</string>
 5     <string name="action_settings">Settings</string>
 6     <string name="networdinfo0">网络不正常</string>
 7     <string name="networdinfo1">网络正常</string>
 8     <string name="wang">网络测试</string>
 9     <string name="but">按钮</string>
10 </resources>

颜色资源文件代码:

  1 <?xml version="1.0" encoding="utf-8"?>
  2 <resources>
  3 
  4     <color name="white">#FFFFFF</color>
  5  <!-- 白色 -->
  6     <color name="ivory">#FFFFF0</color>
  7  <!-- 象牙色 -->
  8     <color name="lightyellow">#FFFFE0</color>
  9  <!-- 亮黄色 -->
 10     <color name="yellow">#FFFF00</color>
 11  <!-- 黄色 -->
 12     <color name="snow">#FFFAFA</color>
 13  <!-- 雪白色 -->
 14     <color name="floralwhite">#FFFAF0</color>
 15  <!-- 花白色 -->
 16     <color name="lemonchiffon">#FFFACD</color>
 17  <!-- 柠檬绸色 -->
 18     <color name="cornsilk">#FFF8DC</color>
 19  <!-- 米绸色 -->
 20     <color name="seashell">#FFF5EE</color>
 21  <!-- 海贝色 -->
 22     <color name="lavenderblush">#FFF0F5</color>
 23  <!-- 淡紫红 -->
 24     <color name="papayawhip">#FFEFD5</color>
 25  <!-- 番木色 -->
 26     <color name="blanchedalmond">#FFEBCD</color>
 27  <!-- 白杏色 -->
 28     <color name="mistyrose">#FFE4E1</color>
 29  <!-- 浅玫瑰色 -->
 30     <color name="bisque">#FFE4C4</color>
 31  <!-- 桔黄色 -->
 32     <color name="moccasin">#FFE4B5</color>
 33  <!-- 鹿皮色 -->
 34     <color name="navajowhite">#FFDEAD</color>
 35  <!-- 纳瓦白 -->
 36     <color name="peachpuff">#FFDAB9</color>
 37  <!-- 桃色 -->
 38     <color name="gold">#FFD700</color>
 39  <!-- 金色 -->
 40     <color name="pink">#FFC0CB</color>
 41  <!-- 粉红色 -->
 42     <color name="lightpink">#FFB6C1</color>
 43  <!-- 亮粉红色 -->
 44     <color name="orange">#FFA500</color>
 45  <!-- 橙色 -->
 46     <color name="lightsalmon">#FFA07A</color>
 47  <!-- 亮肉色 -->
 48     <color name="darkorange">#FF8C00</color>
 49  <!-- 暗桔黄色 -->
 50     <color name="coral">#FF7F50</color>
 51  <!-- 珊瑚色 -->
 52     <color name="hotpink">#FF69B4</color>
 53  <!-- 热粉红色 -->
 54     <color name="tomato">#FF6347</color>
 55  <!-- 西红柿色 -->
 56     <color name="orangered">#FF4500</color>
 57  <!-- 红橙色 -->
 58     <color name="deeppink">#FF1493</color>
 59  <!-- 深粉红色 -->
 60     <color name="fuchsia">#FF00FF</color>
 61  <!-- 紫红色 -->
 62     <color name="magenta">#FF00FF</color>
 63  <!-- 红紫色 -->
 64     <color name="red">#FF0000</color>
 65  <!-- 红色 -->
 66     <color name="oldlace">#FDF5E6</color>
 67  <!-- 老花色 -->
 68     <color name="lightgoldenrodyellow">#FAFAD2</color>
 69  <!-- 亮金黄色 -->
 70     <color name="linen">#FAF0E6</color>
 71  <!-- 亚麻色 -->
 72     <color name="antiquewhite">#FAEBD7</color>
 73  <!-- 古董白 -->
 74     <color name="salmon">#FA8072</color>
 75  <!-- 鲜肉色 -->
 76     <color name="ghostwhite">#F8F8FF</color>
 77  <!-- 幽灵白 -->
 78     <color name="mintcream">#F5FFFA</color>
 79  <!-- 薄荷色 -->
 80     <color name="whitesmoke">#F5F5F5</color>
 81  <!-- 烟白色 -->
 82     <color name="beige">#F5F5DC</color>
 83  <!-- 米色 -->
 84     <color name="wheat">#F5DEB3</color>
 85  <!-- 浅黄色 -->
 86     <color name="sandybrown">#F4A460</color>
 87  <!-- 沙褐色 -->
 88     <color name="azure">#F0FFFF</color>
 89  <!-- 天蓝色 -->
 90     <color name="honeydew">#F0FFF0</color>
 91  <!-- 蜜色 -->
 92     <color name="aliceblue">#F0F8FF</color>
 93  <!-- 艾利斯兰 -->
 94     <color name="khaki">#F0E68C</color>
 95  <!-- 黄褐色 -->
 96     <color name="lightcoral">#F08080</color>
 97  <!-- 亮珊瑚色 -->
 98     <color name="palegoldenrod">#EEE8AA</color>
 99  <!-- 苍麒麟色 -->
100     <color name="violet">#EE82EE</color>
101  <!-- 紫罗兰色 -->
102     <color name="darksalmon">#E9967A</color>
103  <!-- 暗肉色 -->
104     <color name="lavender">#E6E6FA</color>
105  <!-- 淡紫色 -->
106     <color name="lightcyan">#E0FFFF</color>
107  <!-- 亮青色 -->
108     <color name="burlywood">#DEB887</color>
109  <!-- 实木色 -->
110     <color name="plum">#DDA0DD</color>
111  <!-- 洋李色 -->
112     <color name="gainsboro">#DCDCDC</color>
113  <!-- 淡灰色 -->
114     <color name="crimson">#DC143C</color>
115  <!-- 暗深红色 -->
116     <color name="palevioletred">#DB7093</color>
117  <!-- 苍紫罗兰色 -->
118     <color name="goldenrod">#DAA520</color>
119  <!-- 金麒麟色 -->
120     <color name="orchid">#DA70D6</color>
121  <!-- 淡紫色 -->
122     <color name="thistle">#D8BFD8</color>
123  <!-- 蓟色 -->
124     <color name="lightgray">#D3D3D3</color>
125  <!-- 亮灰色 -->
126     <color name="lightgrey">#D3D3D3</color>
127  <!-- 亮灰色 -->
128     <color name="tan">#D2B48C</color>
129  <!-- 茶色 -->
130     <color name="chocolate">#D2691E</color>
131  <!-- 巧可力色 -->
132     <color name="peru">#CD853F</color>
133  <!-- 秘鲁色 -->
134     <color name="indianred">#CD5C5C</color>
135  <!-- 印第安红 -->
136     <color name="mediumvioletred">#C71585</color>
137  <!-- 中紫罗兰色 -->
138     <color name="silver">#C0C0C0</color>
139  <!-- 银色 -->
140     <color name="darkkhaki">#BDB76B</color>
141  <!-- 暗黄褐色 -->
142     <color name="rosybrown">#BC8F8F</color>
143  <!-- 褐玫瑰红 -->
144     <color name="mediumorchid">#BA55D3</color>
145  <!-- 中粉紫色 -->
146     <color name="darkgoldenrod">#B8860B</color>
147  <!-- 暗金黄色 -->
148     <color name="firebrick">#B22222</color>
149  <!-- 火砖色 -->
150     <color name="powderblue">#B0E0E6</color>
151  <!-- 粉蓝色 -->
152     <color name="lightsteelblue">#B0C4DE</color>
153  <!-- 亮钢兰色 -->
154     <color name="paleturquoise">#AFEEEE</color>
155  <!-- 苍宝石绿 -->
156     <color name="greenyellow">#ADFF2F</color>
157  <!-- 黄绿色 -->
158     <color name="lightblue">#ADD8E6</color>
159  <!-- 亮蓝色 -->
160     <color name="darkgray">#A9A9A9</color>
161  <!-- 暗灰色 -->
162     <color name="darkgrey">#A9A9A9</color>
163  <!-- 暗灰色 -->
164     <color name="brown">#A52A2A</color>
165  <!-- 褐色 -->
166     <color name="sienna">#A0522D</color>
167  <!-- 赭色 -->
168     <color name="darkorchid">#9932CC</color>
169  <!-- 暗紫色 -->
170     <color name="palegreen">#98FB98</color>
171  <!-- 苍绿色 -->
172     <color name="darkviolet">#9400D3</color>
173  <!-- 暗紫罗兰色 -->
174     <color name="mediumpurple">#9370DB</color>
175  <!-- 中紫色 -->
176     <color name="lightgreen">#90EE90</color>
177  <!-- 亮绿色 -->
178     <color name="darkseagreen">#8FBC8F</color>
179  <!-- 暗海兰色 -->
180     <color name="saddlebrown">#8B4513</color>
181  <!-- 重褐色 -->
182     <color name="darkmagenta">#8B008B</color>
183  <!-- 暗洋红 -->
184     <color name="darkred">#8B0000</color>
185  <!-- 暗红色 -->
186     <color name="blueviolet">#8A2BE2</color>
187  <!-- 紫罗兰蓝色 -->
188     <color name="lightskyblue">#87CEFA</color>
189  <!-- 亮天蓝色 -->
190     <color name="skyblue">#87CEEB</color>
191  <!-- 天蓝色 -->
192     <color name="gray">#808080</color>
193  <!-- 灰色 -->
194     <color name="grey">#808080</color>
195  <!-- 灰色 -->
196     <color name="olive">#808000</color>
197  <!-- 橄榄色 -->
198     <color name="purple">#800080</color>
199  <!-- 紫色 -->
200     <color name="maroon">#800000</color>
201  <!-- 粟色 -->
202     <color name="aquamarine">#7FFFD4</color>
203  <!-- 碧绿色 -->
204     <color name="chartreuse">#7FFF00</color>
205  <!-- 黄绿色 -->
206     <color name="lawngreen">#7CFC00</color>
207  <!-- 草绿色 -->
208     <color name="mediumslateblue">#7B68EE</color>
209  <!-- 中暗蓝色 -->
210     <color name="lightslategray">#778899</color>
211  <!-- 亮蓝灰 -->
212     <color name="lightslategrey">#778899</color>
213  <!-- 亮蓝灰 -->
214     <color name="slategray">#708090</color>
215  <!-- 灰石色 -->
216     <color name="slategrey">#708090</color>
217  <!-- 灰石色 -->
218     <color name="olivedrab">#6B8E23</color>
219  <!-- 深绿褐色 -->
220     <color name="slateblue">#6A5ACD</color>
221  <!-- 石蓝色 -->
222     <color name="dimgray">#696969</color>
223  <!-- 暗灰色 -->
224     <color name="dimgrey">#696969</color>
225  <!-- 暗灰色 -->
226     <color name="mediumaquamarine">#66CDAA</color>
227  <!-- 中绿色 -->
228     <color name="cornflowerblue">#6495ED</color>
229  <!-- 菊兰色 -->
230     <color name="cadetblue">#5F9EA0</color>
231  <!-- 军兰色 -->
232     <color name="darkolivegreen">#556B2F</color>
233  <!-- 暗橄榄绿 -->
234     <color name="indigo">#4B0082</color>
235  <!-- 靛青色 -->
236     <color name="mediumturquoise">#48D1CC</color>
237  <!-- 中绿宝石 -->
238     <color name="darkslateblue">#483D8B</color>
239  <!-- 暗灰蓝色 -->
240     <color name="steelblue">#4682B4</color>
241  <!-- 钢兰色 -->
242     <color name="royalblue">#4169E1</color>
243  <!-- 皇家蓝 -->
244     <color name="turquoise">#40E0D0</color>
245  <!-- 青绿色 -->
246     <color name="mediumseagreen">#3CB371</color>
247  <!-- 中海蓝 -->
248     <color name="limegreen">#32CD32</color>
249  <!-- 橙绿色 -->
250     <color name="darkslategray">#2F4F4F</color>
251  <!-- 暗瓦灰色 -->
252     <color name="darkslategrey">#2F4F4F</color>
253  <!-- 暗瓦灰色 -->
254     <color name="seagreen">#2E8B57</color>
255  <!-- 海绿色 -->
256     <color name="forestgreen">#228B22</color>
257  <!-- 森林绿 -->
258     <color name="lightseagreen">#20B2AA</color>
259  <!-- 亮海蓝色 -->
260     <color name="dodgerblue">#1E90FF</color>
261  <!-- 闪兰色 -->
262     <color name="midnightblue">#191970</color>
263  <!-- 中灰兰色 -->
264     <color name="aqua">#00FFFF</color>
265  <!-- 浅绿色 -->
266     <color name="cyan">#00FFFF</color>
267  <!-- 青色 -->
268     <color name="springgreen">#00FF7F</color>
269  <!-- 春绿色 -->
270     <color name="lime">#00FF00</color>
271  <!-- 酸橙色 -->
272     <color name="mediumspringgreen">#00FA9A</color>
273  <!-- 中春绿色 -->
274     <color name="darkturquoise">#00CED1</color>
275  <!-- 暗宝石绿 -->
276     <color name="deepskyblue">#00BFFF</color>
277  <!-- 深天蓝色 -->
278     <color name="darkcyan">#008B8B</color>
279  <!-- 暗青色 -->
280     <color name="teal">#008080</color>
281  <!-- 水鸭色 -->
282     <color name="green">#008000</color>
283  <!-- 绿色 -->
284     <color name="darkgreen">#006400</color>
285  <!-- 暗绿色 -->
286     <color name="blue">#0000FF</color>
287  <!-- 蓝色 -->
288     <color name="mediumblue">#0000CD</color>
289  <!-- 中兰色 -->
290     <color name="darkblue">#00008B</color>
291  <!-- 暗蓝色 -->
292     <color name="navy">#000080</color>
293  <!-- 海军色 -->
294     <color name="black">#000000</color>
295  <!-- 黑色 -->
296 
297 </resources>

 



以上是关于Android-连接网络的主要内容,如果未能解决你的问题,请参考以下文章

用于数据加载的 Android 活动/片段职责

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

Android:处理同步网络调用

Android代码片段

Android课程---Android Studio使用小技巧:提取方法代码片段

Python之如何优雅的重试