<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 第十天.Android網絡與通信 ## ### 10.1 Android網絡通訊介紹 ### #### 10.1.1 網絡通訊技術 #### + Java.net + Apache HttpClient + Socket技術 + 裝載網頁 + WiFi技術 + Bluetooth藍牙 ### 10.2 Java.net ### #### 10.2.2主Activity #### ``` public class Activity01 extendsActivity{ publicvoid onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main) Buttonbutton_http = (Button) findViewById(R.id.Button_HTTP); /*監聽button的事件信息 */ button_http.setOnClickListener(newButton.OnClickListener() { publicvoid onClick(View v){ /*新建一個Intent對象 */ Intentintent = new Intent(); /*指定intent要啟動的類 */ intent.setClass(Activity01.this,Activity02.class); /*啟動一個新的Activity*/ startActivity(intent); /*關閉當前的Activity*/ Activity01.this.finish(); } }); ``` Activity02是直接獲取數據的demo! ``` Button button_Get = (Button)findViewById(R.id.Button_Get); /*監聽button的事件信息 */ button_Get.setOnClickListener(newButton.OnClickListener() { publicvoid onClick(View v) { /*新建一個Intent對象 */ Intentintent = new Intent(); /*指定intent要啟動的類 */ intent.setClass(Activity01.this,Activity03.class); /*啟動一個新的Activity*/ startActivity(intent); /*關閉當前的Activity*/ Activity01.this.finish(); } }); ``` Activity03是以Get方式上傳參數的demo! ``` Button button_Post = (Button)findViewById(R.id.Button_Post); /*監聽button的事件信息 */ button_Post.setOnClickListener(newButton.OnClickListener() { publicvoid onClick(View v) { /*新建一個Intent對象 */ Intentintent = new Intent(); /*指定intent要啟動的類 */ intent.setClass(Activity01.this,Activity04.class); /*啟動一個新的Activity*/ startActivity(intent); /*關閉當前的Activity*/ Activity01.this.finish(); } }); } } //結束Activity1類 ``` Activity04是以Post方式上傳參數的demo! #### 10.2.3 直接獲取數據 #### ``` //http地址 String httpUrl ="http://serverip:8080/AndroidAppServer/index.jsp"; //獲得的數據 String resultData = ""; URLurl = null; //構造一個URL對象 url = new URL(httpUrl); //使用HttpURLConnection打開連接 HttpURLConnection urlConn =(HttpURLConnection) url.openConnection(); //得到讀取的內容(流) InputStreamReader in = newInputStreamReader(urlConn.getInputStream()); // 為輸出創建BufferedReader BufferedReader buffer = newBufferedReader(in); String inputLine = null; //使用循環來讀取獲得的數據 while (((inputLine = buffer.readLine())!= null)){ resultData+= inputLine + ""; } ``` 研究HttpURLConnectionDemo工程(Activity02.java) serverip要換成真實IP,不能用localhost或127.0.0.1 #### 10.2.4 以Get方式上傳參數 ### ``` String httpUrl = "http://192.168.1.110:8080/httpget.jsp?par=abcdefg"; URLurl = new URL(httpUrl); //使用HttpURLConnection打開連接 HttpURLConnectionurlConn = (HttpURLConnection) url.openConnection(); //得到讀取的內容(流) InputStreamReaderin = new InputStreamReader(urlConn.getInputStream()); //為輸出創建BufferedReader BufferedReaderbuffer = new BufferedReader(in); StringinputLine = null; //使用循環來讀取獲得的數據 while(((inputLine = buffer.readLine()) != null)){ resultData += inputLine +""; } //關閉InputStreamReader in.close(); //關閉http連接 urlConn.disconnect(); ``` 研究HttpURLConnectionDemo工程(Activity03.java) serverip要換成真實IP,不能用localhost或127.0.0.1 #### 10.2.5 以Post方式上傳參數 #### ``` String httpUrl ="http://192.168.1.110:8080/httpget.jsp"; URL url = new URL(httpUrl); HttpURLConnection urlConn = (HttpURLConnection)url.openConnection(); //因為這個是post請求,設立需要設置為true urlConn.setDoOutput(true);urlConn.setDoInput(true); urlConn.setRequestMethod("POST"); // 設置以POST方式 urlConn.setUseCaches(false); // Post 請求不能使用緩存 urlConn.setInstanceFollowRedirects(true); urlConn.setRequestProperty("Content-Type","application/x-www-form-urlencoded"); urlConn.connect(); DataOutputStream out = newDataOutputStream(urlConn.getOutputStream()); String content = "par=" +URLEncoder.encode("ABCDEFG", "gb2312"); //要上傳的參數 out.writeBytes(content); //將要上傳的內容寫入流中 out.flush(); out.close(); //獲取數據 BufferedReader reader = newBufferedReader(new InputStreamReader(urlConn.getInputStream())); String inputLine = null; while (((inputLine = reader.readLine())!= null)){resultData += inputLine + "";} reader.close();urlConn.disconnect(); ``` 研究HttpURLConnectionDemo工程(Activity03.java) Serverip要換成真實IP,不能用localhost或127.0.0.1 **main.xml** ``` <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="通過下面的按鈕進行不同方式的連接"/> <Button android:id="@+id/Button_HTTP" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="直接獲取數據"/> <Button android:id="@+id/Button_Get" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="以GET方式傳遞數據"/> <Button android:id="@+id/Button_Post" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="以POST方式傳遞數據"/> </LinearLayout> ``` **AndroidManifest.xml** ``` <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.lxt008" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Activity01" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="Activity02"></activity> <activity android:name="Activity03"></activity> <activity android:name="Activity04"></activity> </application> <uses-permission android:name="android.permission.INTERNET" /> <uses-sdk android:minSdkVersion=“7" /> </manifest> ``` ### 10.3 ApacheHttpClient ### ####c10.3.1 使用HttpClient:主Activity #### ``` Button button_Get = (Button)findViewById(R.id.Button_Get); button_Get.setOnClickListener(newButton.OnClickListener() { publicvoid onClick(View v){ Intentintent = new Intent(); /* 新建一個Intent對象 */ /*指定intent要啟動的類 */ intent.setClass(Activity01.this,Activity02.class); startActivity(intent);/* 啟動一個新的Activity*/ Activity01.this.finish();/* 關閉當前的Activity*/ } }); ``` ``` Button button_Post = (Button)findViewById(R.id.Button_Post); button_Post.setOnClickListener(newButton.OnClickListener() { publicvoid onClick(View v){ Intentintent = new Intent(); /*指定intent要啟動的類 */ intent.setClass(Activity01.this,Activity03.class); startActivity(intent); Activity01.this.finish();} }); } ``` 研究ApacheHttpClientDemo工程(Activity01.java) serverip要換成真實IP,不能用localhost或127.0.0.1 #### 10.3.2 HttpClient:HttpGet #### ``` String httpUrl ="http://192.168.1.110:8080/httpget.jsp?par=HttpClient_android_Get"; //HttpGet連接對象 HttpGet httpRequest = newHttpGet(httpUrl); //取得HttpClient對象 HttpClient httpclient = newDefaultHttpClient(); //請求HttpClient,取得HttpResponse HttpResponse httpResponse = httpclient.execute(httpRequest); //請求成功 if (httpResponse.getStatusLine().getStatusCode()== HttpStatus.SC_OK){ //取得返回的字符串 StringstrResult = EntityUtils.toString(httpResponse.getEntity()); mTextView.setText(strResult); } else{ mTextView.setText("請求錯誤!"); } ``` 研究ApacheHttpClientDemo工程(Activity02.java) serverip要換成真實IP,不能用localhost或127.0.0.1 #### 10.3.3 HttpClient:HttpPost #### ``` String httpUrl = "http://192.168.1.110:8080/httpget.jsp"; //HttpPost連接對象 HttpPost httpRequest = newHttpPost(httpUrl); //使用NameValuePair來保存要傳遞的Post參數 List params = newArrayList(); //添加要傳遞的參數 params.add(newBasicNameValuePair("par", "HttpClient_android_Post")); //設置字符集 HttpEntity httpentity = newUrlEncodedFormEntity(params, "gb2312"); //請求httpRequest httpRequest.setEntity(httpentity); //取得默認的HttpClient HttpClient httpclient = newDefaultHttpClient(); //取得HttpResponse HttpResponse httpResponse =httpclient.execute(httpRequest); if(httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK){ StringstrResult = EntityUtils.toString(httpResponse.getEntity());} ``` 研究ApacheHttpClientDemo工程(Activity03.java) serverip要換成真實IP,不能用localhost或127.0.0.1 ### 10.4 裝載并顯示Web網頁 ### #### 10.4.1 用線程刷新網頁顯示 #### ``` public void onCreate(BundlesavedInstanceState){ new Thread(mRunnable).start(); //開啟線程 } //刷新網頁顯示 privatevoid refresh(){ URLurl = new URL("http://192.168.1.110:8080/date.jsp"); HttpURLConnectionurlConn = (HttpURLConnection) url.openConnection(); InputStreamReaderin = new InputStreamReader(urlConn.getInputStream()); BufferedReaderbuffer = new BufferedReader(in); StringinputLine = null; //使用循環來讀取獲得的數據 //關閉InputStreamReader// 設置顯示取得的內容 } } ``` ``` private Runnable mRunnable = newRunnable() { publicvoid run() { while (true) { Thread.sleep(5 * 1000); //發送消息 mHandler.sendMessage(mHandler.obtainMessage()); }; Handler mHandler = new Handler() { public void handleMessage(Message msg) { super.handleMessage(msg); refresh(); } }; ``` 研究HttpURLConnectionRefresh工程 #### 10.4.2 裝載網頁并顯示 #### ``` WebView webView = (WebView)findViewById(R.id.webview); String html ="Hello lxt008!!!"; //裝載頁面,你可以換成URL地址。 webView.loadDataWithBaseURL("Demo",html, "text/html", "utf-8", null); //設置支持JS webView.getSettings().setJavaScriptEnabled(true); //設置瀏覽器客戶端 webView.setWebChromeClient(newWebChromeClient()); ``` ### 10.5 Socket編程復習 ### + 以前課程中學過Socket編程。 + 研究SocketDemo以復習鞏固Socket在Android中的使用。 [示例下載](http://www.apkbus.com/android-83470-1-1.html)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看