提交 6de85b94 编写于 作者: T taxiao213 提交者: yin13753884368@163.com

add setting server url

上级 9ff2b1f4
......@@ -17,7 +17,8 @@
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
android:theme="@style/AppTheme"
android:usesCleartextTraffic="false">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
......
......@@ -8,7 +8,7 @@ package com.android.webrtc;
* 微信公众号:他晓
*/
public class Constant {
public static final String URL = "ws://192.168.0.35:8081/websocket";//server服务器地址
public static final String URL = "ws://192.168.31.106:8080/webrtc/websocket";//server服务器地址
public static final String STUN = "stun:stun.l.google.com:19302";//穿透服务器
public static final String CHANNEL = "channel";
......@@ -33,4 +33,6 @@ public class Constant {
public static final int VIDEO_RESOLUTION_WIDTH = 320;
public static final int VIDEO_RESOLUTION_HEIGHT = 240;
public static final int VIDEO_FPS = 60;
public static final String SHARE_PREFERENCE_NAME = "webrtc_sp";
}
......@@ -3,7 +3,11 @@ package com.android.webrtc;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
/**
* 入口
......@@ -15,13 +19,39 @@ import android.view.View;
*/
public class MainActivity extends AppCompatActivity {
private EditText et_address;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_address = findViewById(R.id.et_address);
setServerUrl(Constant.URL);
}
public void onClick(View view) {
if (checkUrl()) return;
startActivity(new Intent(MainActivity.this, WebRtcActivity.class));
}
private boolean checkUrl() {
String address = et_address.getText().toString().trim();
if (TextUtils.isEmpty(address)) {
Toast.makeText(MainActivity.this, "请填入 websocket 地址", Toast.LENGTH_LONG).show();
return true;
}
return false;
}
public void setting(View view) {
if (checkUrl()) return;
setServerUrl(et_address.getText().toString().trim());
}
public void setServerUrl(String url) {
if (!TextUtils.isEmpty(url)) {
SharePreferences.getInstance(MainActivity.this).setServerUrl(url);
et_address.setText(url);
}
}
}
package com.android.webrtc;
import android.content.Context;
import android.content.SharedPreferences;
/**
* Created by taxiao on 2021/5/16
* CSDN:http://blog.csdn.net/yin13753884368/article
* Github:https://github.com/taxiao213
* 微信公众号:他晓
*/
class SharePreferences {
private static volatile SharePreferences sharePreferences;
public SharedPreferences prefs;
// server_url
private final String PREFERENCE_SERVER_URL = "preference_server_url";
public static SharePreferences getInstance(Context context) {
if (sharePreferences == null) {
synchronized (SharePreferences.class) {
if (sharePreferences == null) {
sharePreferences = new SharePreferences(context);
}
}
}
return sharePreferences;
}
private SharePreferences(Context context) {
prefs = context.getSharedPreferences(Constant.SHARE_PREFERENCE_NAME, Context.MODE_PRIVATE);
}
// 设置 ServerUrl
public void setServerUrl(String serverUrl) {
putString(PREFERENCE_SERVER_URL, serverUrl);
}
public String getServerUrl() {
return getString(PREFERENCE_SERVER_URL);
}
/**
* 存放普通数据的方法
*
* @param key 存储数据的键
* @param data 存储数据的值
*/
private void putString(String key, String data) {
prefs.edit().putString(key, data).apply();
}
/**
* 读取普通数据的方法
*
* @param key 要读取数据的key
* @return 要读取的数据
*/
private String getString(String key) {
return prefs.getString(key, "");
}
/**
* 存放普通数据的方法
*
* @param key 存储数据的键
* @param data 存储数据的值
*/
protected void putInt(String key, int data) {
prefs.edit().putInt(key, data).apply();
}
/**
* 读取普通数据的方法
*
* @param key 要读取数据的key
* @return 要读取的数据
*/
protected int getInt(String key) {
return prefs.getInt(key, 0);
}
/**
* 移除相关key对应的item
*
* @param key 需要移除的key
*/
protected void remove(String key) {
prefs.edit().remove(key).apply();
}
protected void putLong(String key, long data) {
prefs.edit().putLong(key, data).apply();
}
protected Long getLong(String key) {
return prefs.getLong(key, 0);
}
protected void putBoolean(String key, Boolean value) {
prefs.edit().putBoolean(key, value).apply();
}
protected Boolean getBoolean(String value) {
return prefs.getBoolean(value, false);
}
/**
* 清除相关prefs数据
*/
public void clear() {
prefs.edit().clear().apply();
}
}
......@@ -147,7 +147,7 @@ public class WebRtcActivity extends AppCompatActivity implements View.OnClickLis
*/
private void connectionWebsocket() {
try {
webSocketClient = new WebSocketClient(URI.create(Constant.URL)) {
webSocketClient = new WebSocketClient(URI.create(SharePreferences.getInstance(WebRtcActivity.this).getServerUrl())) {
@Override
public void onOpen(ServerHandshake handshakedata) {
setText("已连接");
......
......@@ -6,6 +6,38 @@
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="80dp"
android:orientation="horizontal"
app:layout_constraintBaseline_toBaselineOf="parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:onClick="onClick"
android:paddingStart="10dp"
android:paddingRight="10dp"
android:text="地址:" />
<EditText
android:id="@+id/et_address"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<Button
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_alignParentEnd="true"
android:gravity="center"
android:onClick="setting"
android:paddingStart="10dp"
android:paddingRight="10dp"
android:text="设置" />
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="60dp"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册