Skip to content

Commit e3a28b9

Browse files
author
lucas
committed
native支持判断是否为手机设备
1 parent e24cf45 commit e3a28b9

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed

VideoOS/LuaViewSDK/src/cn/com/venvy/lua/plugin/LVVideoPlugin.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,15 @@
99
import org.luaj.vm2.Varargs;
1010
import org.luaj.vm2.lib.VarArgFunction;
1111

12+
import cn.com.venvy.App;
1213
import cn.com.venvy.Config;
1314
import cn.com.venvy.Platform;
1415
import cn.com.venvy.common.bean.VideoFrameSize;
1516
import cn.com.venvy.common.bean.VideoPlayerSize;
1617
import cn.com.venvy.common.debug.DebugStatus;
1718
import cn.com.venvy.common.interf.ScreenStatus;
1819
import cn.com.venvy.common.interf.VideoType;
20+
import cn.com.venvy.common.utils.VenvyDeviceUtil;
1921
import cn.com.venvy.common.utils.VenvyLog;
2022
import cn.com.venvy.lua.binder.VenvyLVLibBinder;
2123

@@ -40,6 +42,7 @@ public static void install(VenvyLVLibBinder venvyLVLibBinder, Platform platform)
4042
venvyLVLibBinder.set("getVideoCategory", new GetCategory(platform));
4143
venvyLVLibBinder.set("getConfigExtendJSONString", new GetExtendJSONString(platform));
4244
venvyLVLibBinder.set("osType", new OsType(platform));
45+
venvyLVLibBinder.set("isPhone", new IsPhone());
4346

4447
}
4548

@@ -308,4 +311,20 @@ public Varargs invoke(Varargs args) {
308311
return LuaValue.valueOf(value);
309312
}
310313
}
314+
315+
316+
/**
317+
* 判断是否是手机设备
318+
*
319+
* 支持sim card 且 屏幕尺寸小于20则认为是手机设备
320+
*/
321+
private static class IsPhone extends VarArgFunction {
322+
@Override
323+
public LuaValue invoke(Varargs args) {
324+
boolean isPhone = VenvyDeviceUtil.isSupportSimCard(App.getContext()) && VenvyDeviceUtil.getScreenDimension(App.getContext()) < 20.0;
325+
326+
return LuaValue.valueOf(isPhone);
327+
}
328+
}
329+
311330
}

VideoOS/VenvyLibrary/src/main/java/cn/com/venvy/common/utils/VenvyDeviceUtil.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
import android.support.annotation.Nullable;
1111
import android.telephony.TelephonyManager;
1212
import android.text.TextUtils;
13+
import android.util.DisplayMetrics;
14+
import android.view.Display;
15+
import android.view.WindowManager;
1316

1417
import org.json.JSONObject;
1518

@@ -23,6 +26,7 @@
2326
import java.net.NetworkInterface;
2427
import java.net.URL;
2528
import java.net.URLEncoder;
29+
import java.text.DecimalFormat;
2630
import java.util.Enumeration;
2731
import java.util.UUID;
2832

@@ -364,4 +368,35 @@ public static boolean existSDcard() {
364368
}
365369
return MEDIA_MOUNTED.equals(externalStorageState);
366370
}
371+
372+
/**
373+
* 是否支持sim卡
374+
*
375+
* @param context
376+
* @return
377+
*/
378+
public static boolean isSupportSimCard(Context context) {
379+
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
380+
return telephonyManager.getPhoneType() != TelephonyManager.PHONE_TYPE_NONE;
381+
}
382+
383+
384+
/**
385+
* 获取屏幕物理尺寸
386+
*
387+
* @return
388+
*/
389+
public static double getScreenDimension(Context context) {
390+
WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
391+
Display display = windowManager.getDefaultDisplay();
392+
DisplayMetrics dm = new DisplayMetrics();
393+
display.getMetrics(dm);
394+
395+
double x = Math.pow(dm.widthPixels / dm.xdpi, 2);
396+
double y = Math.pow(dm.heightPixels / dm.ydpi, 2);
397+
398+
DecimalFormat df = new DecimalFormat("#.##");
399+
return Double.parseDouble(df.format(Math.sqrt(x + y)));
400+
}
401+
367402
}

0 commit comments

Comments
 (0)