From caedb3a52b4aeeab45184ac0abffacbad1b909b8 Mon Sep 17 00:00:00 2001
From: shuyu <359369982@qq.com>
Date: Thu, 1 Dec 2016 16:46:49 +0800
Subject: [PATCH] =?UTF-8?q?1.3.6=20init=20=E6=B2=A1=E6=9C=89=E7=BD=91?=
=?UTF-8?q?=E7=BB=9C=E7=9A=84=E6=8F=90=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../example/gsyvideoplayer/DetailPlayer.java | 2 +-
.../gsyvideoplayer/utils/NetworkUtils.java | 241 ++++++++++++++++++
.../video/StandardGSYVideoPlayer.java | 6 +
.../src/main/res/values/strings.xml | 1 +
4 files changed, 249 insertions(+), 1 deletion(-)
create mode 100644 gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/utils/NetworkUtils.java
diff --git a/app/src/main/java/com/example/gsyvideoplayer/DetailPlayer.java b/app/src/main/java/com/example/gsyvideoplayer/DetailPlayer.java
index daeecbd..bdbcd16 100644
--- a/app/src/main/java/com/example/gsyvideoplayer/DetailPlayer.java
+++ b/app/src/main/java/com/example/gsyvideoplayer/DetailPlayer.java
@@ -40,7 +40,7 @@ public class DetailPlayer extends FragmentActivity {
ButterKnife.bind(this);
String url = "http://baobab.wdjcdn.com/14564977406580.mp4";
- detailPlayer.setUp(url, true, "");
+ detailPlayer.setUp(url, true, null, "测试视频");
//增加封面
ImageView imageView = new ImageView(this);
diff --git a/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/utils/NetworkUtils.java b/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/utils/NetworkUtils.java
new file mode 100644
index 0000000..1424cf8
--- /dev/null
+++ b/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/utils/NetworkUtils.java
@@ -0,0 +1,241 @@
+package com.shuyu.gsyvideoplayer.utils;
+
+/**
+ * Created by shuyu on 2016/8/10.
+ *
+ *
+ * author: Blankj
+ * blog : http://blankj.com
+ * time : 2016/8/2
+ *
+ *
+ */
+
+import android.content.Context;
+import android.content.Intent;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+import android.telephony.TelephonyManager;
+
+public class NetworkUtils {
+
+ private NetworkUtils() {
+ }
+
+ public static final int NETWORK_WIFI = 1; // wifi network
+ public static final int NETWORK_4G = 4; // "4G" networks
+ public static final int NETWORK_3G = 3; // "3G" networks
+ public static final int NETWORK_2G = 2; // "2G" networks
+ public static final int NETWORK_UNKNOWN = 5; // unknown network
+ public static final int NETWORK_NO = -1; // no network
+
+ private static final int NETWORK_TYPE_GSM = 16;
+ private static final int NETWORK_TYPE_TD_SCDMA = 17;
+ private static final int NETWORK_TYPE_IWLAN = 18;
+
+ /**
+ * 打开网络设置界面
+ * 3.0以下打开设置界面
+ *
+ * @param context 上下文
+ */
+ public static void openWirelessSettings(Context context) {
+ if (android.os.Build.VERSION.SDK_INT > 10) {
+ context.startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));
+ } else {
+ context.startActivity(new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS));
+ }
+ }
+
+ /**
+ * 获取活动网路信息
+ *
+ * @param context 上下文
+ * @return NetworkInfo
+ */
+ private static NetworkInfo getActiveNetworkInfo(Context context) {
+ ConnectivityManager cm = (ConnectivityManager) context
+ .getSystemService(Context.CONNECTIVITY_SERVICE);
+ return cm.getActiveNetworkInfo();
+ }
+
+ /**
+ * 判断网络是否可用
+ * 需添加权限 android.permission.ACCESS_NETWORK_STATE
+ */
+ public static boolean isAvailable(Context context) {
+ NetworkInfo info = getActiveNetworkInfo(context);
+ return info != null && info.isAvailable();
+ }
+
+ /**
+ * 判断网络是否连接
+ * 需添加权限 android.permission.ACCESS_NETWORK_STATE
+ *
+ * @param context 上下文
+ * @return true: 是
false: 否
+ */
+ public static boolean isConnected(Context context) {
+ NetworkInfo info = getActiveNetworkInfo(context);
+ return info != null && info.isConnected();
+ }
+
+ /**
+ * 判断网络是否是4G
+ * 需添加权限 android.permission.ACCESS_NETWORK_STATE
+ *
+ * @param context 上下文
+ * @return true: 是
false: 不是
+ */
+ public static boolean is4G(Context context) {
+ NetworkInfo info = getActiveNetworkInfo(context);
+ return info != null && info.isAvailable() && info.getSubtype() == TelephonyManager.NETWORK_TYPE_LTE;
+ }
+
+ /**
+ * 判断wifi是否连接状态
+ * 需添加权限 android.permission.ACCESS_NETWORK_STATE
+ *
+ * @param context 上下文
+ * @return true: 连接
false: 未连接
+ */
+ public static boolean isWifiConnected(Context context) {
+ ConnectivityManager cm = (ConnectivityManager) context
+ .getSystemService(Context.CONNECTIVITY_SERVICE);
+ return cm != null && cm.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_WIFI;
+ }
+
+ /**
+ * 获取移动网络运营商名称
+ * 如中国联通、中国移动、中国电信
+ *
+ * @param context 上下文
+ * @return 移动网络运营商名称
+ */
+ public static String getNetworkOperatorName(Context context) {
+ TelephonyManager tm = (TelephonyManager) context
+ .getSystemService(Context.TELEPHONY_SERVICE);
+ return tm != null ? tm.getNetworkOperatorName() : null;
+ }
+
+ /**
+ * 获取移动终端类型
+ *
+ * @param context 上下文
+ * @return 手机制式
+ *
+ * - PHONE_TYPE_NONE : 0 手机制式未知
+ * - PHONE_TYPE_GSM : 1 手机制式为GSM,移动和联通
+ * - PHONE_TYPE_CDMA : 2 手机制式为CDMA,电信
+ * - PHONE_TYPE_SIP : 3
+ *
+ */
+ public static int getPhoneType(Context context) {
+ TelephonyManager tm = (TelephonyManager) context
+ .getSystemService(Context.TELEPHONY_SERVICE);
+ return tm != null ? tm.getPhoneType() : -1;
+ }
+
+
+ /**
+ * 获取当前的网络类型(WIFI,2G,3G,4G)
+ * 需添加权限 android.permission.ACCESS_NETWORK_STATE
+ *
+ * @param context 上下文
+ * @return 网络类型
+ *
+ * - NETWORK_WIFI = 1;
+ * - NETWORK_4G = 4;
+ * - NETWORK_3G = 3;
+ * - NETWORK_2G = 2;
+ * - NETWORK_UNKNOWN = 5;
+ * - NETWORK_NO = -1;
+ *
+ */
+ public static int getNetWorkType(Context context) {
+ int netType = NETWORK_NO;
+ NetworkInfo info = getActiveNetworkInfo(context);
+ if (info != null && info.isAvailable()) {
+
+ if (info.getType() == ConnectivityManager.TYPE_WIFI) {
+ netType = NETWORK_WIFI;
+ } else if (info.getType() == ConnectivityManager.TYPE_MOBILE) {
+ switch (info.getSubtype()) {
+
+ case NETWORK_TYPE_GSM:
+ case TelephonyManager.NETWORK_TYPE_GPRS:
+ case TelephonyManager.NETWORK_TYPE_CDMA:
+ case TelephonyManager.NETWORK_TYPE_EDGE:
+ case TelephonyManager.NETWORK_TYPE_1xRTT:
+ case TelephonyManager.NETWORK_TYPE_IDEN:
+ netType = NETWORK_2G;
+ break;
+
+ case NETWORK_TYPE_TD_SCDMA:
+ case TelephonyManager.NETWORK_TYPE_EVDO_A:
+ case TelephonyManager.NETWORK_TYPE_UMTS:
+ case TelephonyManager.NETWORK_TYPE_EVDO_0:
+ case TelephonyManager.NETWORK_TYPE_HSDPA:
+ case TelephonyManager.NETWORK_TYPE_HSUPA:
+ case TelephonyManager.NETWORK_TYPE_HSPA:
+ case TelephonyManager.NETWORK_TYPE_EVDO_B:
+ case TelephonyManager.NETWORK_TYPE_EHRPD:
+ case TelephonyManager.NETWORK_TYPE_HSPAP:
+ netType = NETWORK_3G;
+ break;
+
+ case NETWORK_TYPE_IWLAN:
+ case TelephonyManager.NETWORK_TYPE_LTE:
+ netType = NETWORK_4G;
+ break;
+ default:
+
+ String subtypeName = info.getSubtypeName();
+ if (subtypeName.equalsIgnoreCase("TD-SCDMA")
+ || subtypeName.equalsIgnoreCase("WCDMA")
+ || subtypeName.equalsIgnoreCase("CDMA2000")) {
+ netType = NETWORK_3G;
+ } else {
+ netType = NETWORK_UNKNOWN;
+ }
+ break;
+ }
+ } else {
+ netType = NETWORK_UNKNOWN;
+ }
+ }
+ return netType;
+ }
+
+ /**
+ * 获取当前的网络类型(WIFI,2G,3G,4G)
+ * 依赖上面的方法
+ *
+ * @param context 上下文
+ * @return 网络类型名称
+ *
+ * - NETWORK_WIFI
+ * - NETWORK_4G
+ * - NETWORK_3G
+ * - NETWORK_2G
+ * - NETWORK_UNKNOWN
+ * - NETWORK_NO
+ *
+ */
+ public static String getNetWorkTypeName(Context context) {
+ switch (getNetWorkType(context)) {
+ case NETWORK_WIFI:
+ return "NETWORK_WIFI";
+ case NETWORK_4G:
+ return "NETWORK_4G";
+ case NETWORK_3G:
+ return "NETWORK_3G";
+ case NETWORK_2G:
+ return "NETWORK_2G";
+ case NETWORK_NO:
+ return "NETWORK_NO";
+ default:
+ return "NETWORK_UNKNOWN";
+ }
+ }
+}
\ No newline at end of file
diff --git a/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/StandardGSYVideoPlayer.java b/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/StandardGSYVideoPlayer.java
index 723864a..3dfb501 100644
--- a/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/StandardGSYVideoPlayer.java
+++ b/gsyVideoPlayer/src/main/java/com/shuyu/gsyvideoplayer/video/StandardGSYVideoPlayer.java
@@ -29,6 +29,7 @@ import com.shuyu.gsyvideoplayer.R;
import com.shuyu.gsyvideoplayer.listener.StandardVideoAllCallBack;
import com.shuyu.gsyvideoplayer.utils.CommonUtil;
import com.shuyu.gsyvideoplayer.utils.Debuger;
+import com.shuyu.gsyvideoplayer.utils.NetworkUtils;
import java.io.File;
import java.util.Map;
@@ -267,6 +268,10 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
@Override
public void showWifiDialog() {
super.showWifiDialog();
+ if (!NetworkUtils.isAvailable(mContext)) {
+ Toast.makeText(mContext, getResources().getString(R.string.no_net), Toast.LENGTH_LONG).show();
+ return;
+ }
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder.setMessage(getResources().getString(R.string.tips_not_wifi));
builder.setPositiveButton(getResources().getString(R.string.tips_not_wifi_confirm), new DialogInterface.OnClickListener() {
@@ -802,4 +807,5 @@ public class StandardGSYVideoPlayer extends GSYVideoPlayer {
public RelativeLayout getThumbImageViewLayout() {
return mThumbImageViewLayout;
}
+
}
diff --git a/gsyVideoPlayer/src/main/res/values/strings.xml b/gsyVideoPlayer/src/main/res/values/strings.xml
index 61fef09..f4cd5ff 100644
--- a/gsyVideoPlayer/src/main/res/values/strings.xml
+++ b/gsyVideoPlayer/src/main/res/values/strings.xml
@@ -3,6 +3,7 @@
您当前正在使用移动网络,继续播放将消耗流量
继续播放
+ 当前找不到网络
停止播放
播放地址无效
--
GitLab