Android利用Andserver搭建服務(wù)器的詳細(xì)教程
效果
需求
在手機(jī)上有一個(gè)功能,但是需要使用電腦控制什么時(shí)候開(kāi)始這個(gè)功能,然后上網(wǎng)搜索,找到了AndServer可以滿足要求,我只是實(shí)現(xiàn)了簡(jiǎn)單的功能,如果感興趣的話,可以深入的研究一下。
地址如下:https://github.com/yanzhenjie/AndServer
1.步驟引入
implementation 'com.yanzhenjie:andserver:1.0.2'
2.申請(qǐng)權(quán)限
<uses-permission android:name="android.permission.INTERNET" />
3.初始化server
private void initServer() { AssetManager assetManager = getAssets(); WebSite webSite = new AssetsWebsite(assetManager, ""); AndServer andServer = new AndServer.Build() .website(webSite) .timeout(30 * 1000) .port(1234) .registerHandler("login", new loginRequest()) .registerHandler("search",new searchRequest()) .listener(mListener) .build(); server = andServer.createServer(); server.start(); }
4.主要代碼
/** * 監(jiān)聽(tīng)事件 */ private Server.Listener mListener = new Server.Listener() { @Override public void onStarted() { Log.e(TAG, "onStarted: "); tvTips.setText("服務(wù)啟動(dòng)成功"); } @Override public void onStopped() { Log.e(TAG, "onStopped: "); } @Override public void onError(Exception e) { Log.e(TAG, "onError: " + e.getMessage()); tvTips.setText("服務(wù)啟動(dòng)失?。?+e.getMessage()); } }; public class searchRequest implements RequestHandler{ @Override public void handle(HttpRequest request, HttpResponse response, HttpContext context) throws HttpException, IOException { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, "拍照", Toast.LENGTH_SHORT).show(); } }); StringEntity stringEntity = new StringEntity("拍照", "utf-8"); response.setEntity(stringEntity); } } public class loginRequest implements RequestHandler { @Override public void handle(HttpRequest request, HttpResponse response, HttpContext context) throws HttpException, IOException { Map<String, String> params = HttpRequestParser.parse(request); // Request params. final String userName = params.get("name"); final String password = params.get("pwd"); //中文需要解碼 final String userName1 = Uri.decode(userName); final String password1 = Uri.decode(password); Log.e(TAG, "handle: " + userName); runOnUiThread(new Runnable() { @Override public void run() { tvUsername.setText(userName1); tvPwd.setText(password1); } }); StringBuilder sb = new StringBuilder(); sb.append("用戶名:" + userName1); sb.append("\n"); sb.append("密碼:" + password1); StringEntity stringEntity = new StringEntity(sb.toString(), "utf-8"); response.setEntity(stringEntity); } }
總結(jié)
到此這篇關(guān)于Android利用Andserver搭建服務(wù)器的詳細(xì)教程的文章就介紹到這了,更多相關(guān)android 搭建服務(wù)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android UI設(shè)計(jì)與開(kāi)發(fā)之仿人人網(wǎng)V5.9.2最新版引導(dǎo)界面
這篇文章主要為大家詳細(xì)介紹了Android UI設(shè)計(jì)與開(kāi)發(fā)之仿人人網(wǎng)V5.9.2最新版引導(dǎo)界面,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08Android 帶箭頭的指引tipLayout實(shí)現(xiàn)示例代碼
本篇文章主要介紹了Android 帶箭頭的指引tipLayout實(shí)現(xiàn)示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01Android實(shí)現(xiàn)歌詞滾動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)歌詞滾動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11android使用AsyncTask實(shí)現(xiàn)多線程下載實(shí)例
這篇文章主要介紹了android使用AsyncTask實(shí)現(xiàn)多線程下載實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02ListView滑動(dòng)隱藏顯示ToolBar的實(shí)例
下面小編就為大家分享一篇ListView滑動(dòng)隱藏顯示ToolBar的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01android打開(kāi)應(yīng)用所在的市場(chǎng)頁(yè)面進(jìn)行評(píng)分操作的方法
這篇文章主要介紹了android打開(kāi)應(yīng)用所在的市場(chǎng)頁(yè)面進(jìn)行評(píng)分操作的方法,涉及Android操作市場(chǎng)頁(yè)面評(píng)分效果的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04Eclipse打開(kāi)時(shí)“發(fā)現(xiàn)了以元素''d:skin''”開(kāi)頭的無(wú)效內(nèi)容。此處不應(yīng)含有子元素的解決方法
這篇文章主要介紹了Eclipse打開(kāi)時(shí)“發(fā)現(xiàn)了以元素'd:skin'”開(kāi)頭的無(wú)效內(nèi)容。此處不應(yīng)含有子元素的解決方法,涉及Android sdk中devices.xml文件的修改,需要的朋友可以參考下2016-01-01android中寫一個(gè)內(nèi)部類來(lái)選擇文件夾中指定的圖片類型實(shí)例說(shuō)明
選擇文件夾中指定的圖片類型,本類是用來(lái)選擇文件夾中是.jpg類型的圖片具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈2013-06-06