mjpg-streamer安卓APP

mjpg-streamer安卓APP_第1张图片mjpg-streamer安卓APP_第2张图片

该APP主要作用是:(同一局域网内有下位机)根据输入的IP和端口号,利用Webview显示下位机的图像

有两个Activity,其中第一个是输入信息的页面,第二个是Webview的页面。

过程中遇到两个问题:

1、Webview加载网页时出现NET::ERR_CACHE_MISS的错误

1.在res文件夹下创建一个xml文件夹,然后创建一个network_security_config.xml文件,文件内容如下:



   

2.接着,在AndroidManifest.xml文件下的application标签增加以下属性:

...
 android:networkSecurityConfig="@xml/network_security_config"
...
    />

2、Android WebView 出现err_cache_miss 

在工程的AndroidManifest.xml文件中加入联网的权限

即可

IDE为Android studio,项目代码如下:

文件MainActivity.java

package com.example.onenet;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    //点击事件
    public void connect(View v)
    {
        //Toast.makeText(MainActivity.this,"连接中",Toast.LENGTH_LONG).show();

        //得到输入框的IP地址
        EditText editText=findViewById(R.id.editText);
        String val=editText.getText().toString();

        //得到输入框的端口号
        EditText editText2=findViewById(R.id.editText2);
        String val2=editText2.getText().toString();

        //跳转到Activity2
        Intent intent=new Intent(MainActivity.this,Main2Activity.class);
        intent.putExtra("val",val);
        intent.putExtra("val2",val2);
        startActivityForResult(intent,0x01);

    }
}

文件Main2Activity.java

package com.example.onenet;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;



public class Main2Activity extends AppCompatActivity {


    private WebView mWebView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {


        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        //得到IP地址和端口号
        Intent intent=getIntent();
        String ip_num=intent.getStringExtra("val");
        String socket_num=intent.getStringExtra("val2");
        Toast.makeText(Main2Activity.this,ip_num+" port"+socket_num,Toast.LENGTH_LONG).show();


        Init(ip_num,socket_num);


    }

    public void Init(String ip_num,String port){

        mWebView = (WebView) findViewById(R.id.WebView);//获取view

        WebSettings WebSet = mWebView.getSettings();    //获取webview设置
        WebSet.setJavaScriptEnabled(true);              //设置JavaScript支持

        WebSet.setSupportZoom(true);            // 设置可以支持缩放

        WebSet.setBuiltInZoomControls(true);    // 设置出现缩放工具

        WebSet.setUseWideViewPort(true);        //扩大比例的缩放

        WebSet.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);   //自适应屏幕
        WebSet.setLoadWithOverviewMode(true);

        //mWebView.loadUrl("http://iamhouhuan.vicp.io:40710/h_listening/login/login.jsp");
        //mWebView.loadUrl("http://"+ip_num+":"+port+"/javascript_simple.html");
        mWebView.loadUrl("http://"+ip_num+":"+port+"/?action=stream");
        //mWebView.loadUrl("http://www.baidu.com/");
        //设置webview打开的链接

        mWebView.setWebViewClient(new WebViewClient(){  //设置不适用第三方浏览器打开网页
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                //返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器
                view.loadUrl(url);
                return true;
            }
        });

    }
    @Override
    public void onBackPressed() {

        if(mWebView.canGoBack()) {
            mWebView.goBack();//返回上一页面
        }
        else {
            System.exit(0);//退出程序
        }
    }
}

文件ativity_main.xml




    

        

        
    

    

        

        
    

    

        

文件ativity_main2.xml





    
    

文件AndroidManifest.xml




    
        
        
            
                

                
            
        


    

    

文件network_security_config.xml  (位置:res/xml/)



    

文件strings.xml  (位置:res/values/)


    Onenet
    IP地址
    端口号
    连接

文件colors.xml  (位置:res/values/)



    #008577
    #00574B
    #D81B60
    #0000ff
    #D81B60

文件dimen.xml  (位置:res/values/)



    18dp
    20dp

 

你可能感兴趣的:(mjpg-streamer安卓APP)