当前位置: 首页 > news >正文

建设电影网站代码wordpress新建文章中添加目录

建设电影网站代码,wordpress新建文章中添加目录,做类似猪八戒网的网站,网站头部导航样式转载至 一行代码帮你检测Android模拟器 具体原理看原博主文章#xff0c;这里只讲cocoscreator3.6的安卓工程怎么使用 1.新建一个com.lahm.library包#xff0c;和com.cocos.game同目录#xff0c;如图示 那四个文件的代码如下#xff1a; EmulatorCheckUtil类#…转载至 一行代码帮你检测Android模拟器    具体原理看原博主文章这里只讲cocoscreator3.6的安卓工程怎么使用 1.新建一个com.lahm.library包和com.cocos.game同目录如图示 那四个文件的代码如下 EmulatorCheckUtil类检测模拟器和真机的工具类是入口 package com.lahm.library;import android.content.Context; import android.content.pm.PackageManager; import android.hardware.Sensor; import android.hardware.SensorManager; import android.text.TextUtils; import android.util.Log;import com.facebook.internal.LockOnGetVariable;import static android.content.Context.SENSOR_SERVICE; import static com.lahm.library.CheckResult.RESULT_EMULATOR; import static com.lahm.library.CheckResult.RESULT_MAYBE_EMULATOR; import static com.lahm.library.CheckResult.RESULT_UNKNOWN;/*** Project Name:检查是否是模拟器* Package Name:com.lahm.library* Created by lahm on 2018/6/8 15:01 .*/ public class EmulatorCheckUtil {private static String TAG EmulatorCheckUtil:;private EmulatorCheckUtil() {}private static class SingletonHolder {private static final EmulatorCheckUtil INSTANCE new EmulatorCheckUtil();}public static final EmulatorCheckUtil getSingleInstance() {return SingletonHolder.INSTANCE;}public boolean readSysProperty(Context context, EmulatorCheckCallback callback) {if (context null)throw new IllegalArgumentException(context must not be null);int suspectCount 0;//检测硬件名称CheckResult hardwareResult checkFeaturesByHardware();switch (hardwareResult.result) {case RESULT_MAYBE_EMULATOR:suspectCount;break;case RESULT_EMULATOR:if (callback ! null) callback.findEmulator(hardware hardwareResult.value);return true;}//检测渠道CheckResult flavorResult checkFeaturesByFlavor();switch (flavorResult.result) {case RESULT_MAYBE_EMULATOR:suspectCount;break;case RESULT_EMULATOR:if (callback ! null) callback.findEmulator(flavor flavorResult.value);return true;}//检测设备型号CheckResult modelResult checkFeaturesByModel();switch (modelResult.result) {case RESULT_MAYBE_EMULATOR:suspectCount;break;case RESULT_EMULATOR:if (callback ! null) callback.findEmulator(model modelResult.value);return true;}//检测硬件制造商CheckResult manufacturerResult checkFeaturesByManufacturer();switch (manufacturerResult.result) {case RESULT_MAYBE_EMULATOR:suspectCount;break;case RESULT_EMULATOR:if (callback ! null)callback.findEmulator(manufacturer manufacturerResult.value);return true;}//检测主板名称CheckResult boardResult checkFeaturesByBoard();switch (boardResult.result) {case RESULT_MAYBE_EMULATOR:suspectCount;break;case RESULT_EMULATOR:if (callback ! null) callback.findEmulator(board boardResult.value);return true;}//检测主板平台CheckResult platformResult checkFeaturesByPlatform();switch (platformResult.result) {case RESULT_MAYBE_EMULATOR:suspectCount;break;case RESULT_EMULATOR:if (callback ! null) callback.findEmulator(platform platformResult.value);return true;}//检测基带信息CheckResult baseBandResult checkFeaturesByBaseBand();switch (baseBandResult.result) {case RESULT_MAYBE_EMULATOR:suspectCount 2;//模拟器基带信息为null的情况概率相当大break;case RESULT_EMULATOR:if (callback ! null) callback.findEmulator(baseBand baseBandResult.value);return true;}//检测传感器数量int sensorNumber getSensorNumber(context);if (sensorNumber 7) suspectCount;//检测已安装第三方应用数量int userAppNumber getUserAppNumber();if (userAppNumber 5) suspectCount;//检测是否支持闪光灯boolean supportCameraFlash supportCameraFlash(context);if (!supportCameraFlash) suspectCount;//检测是否支持相机boolean supportCamera supportCamera(context);if (!supportCamera) suspectCount;//检测是否支持蓝牙boolean supportBluetooth supportBluetooth(context);if (!supportBluetooth) suspectCount;//检测光线传感器boolean hasLightSensor hasLightSensor(context);if (!hasLightSensor) suspectCount;//检测进程组信息CheckResult cgroupResult checkFeaturesByCgroup();if (cgroupResult.result RESULT_MAYBE_EMULATOR) suspectCount;if (callback ! null) {StringBuffer stringBuffer new StringBuffer(Test start).append(\r\n).append(hardware ).append(hardwareResult.value).append(\r\n).append(flavor ).append(flavorResult.value).append(\r\n).append(model ).append(modelResult.value).append(\r\n).append(manufacturer ).append(manufacturerResult.value).append(\r\n).append(board ).append(boardResult.value).append(\r\n).append(platform ).append(platformResult.value).append(\r\n).append(baseBand ).append(baseBandResult.value).append(\r\n).append(sensorNumber ).append(sensorNumber).append(\r\n).append(userAppNumber ).append(userAppNumber).append(\r\n).append(supportCamera ).append(supportCamera).append(\r\n).append(supportCameraFlash ).append(supportCameraFlash).append(\r\n).append(supportBluetooth ).append(supportBluetooth).append(\r\n).append(hasLightSensor ).append(hasLightSensor).append(\r\n).append(cgroupResult ).append(cgroupResult.value).append(\r\n).append(suspectCount ).append(suspectCount);callback.findEmulator(stringBuffer.toString());}Log.i(TAG, EmulatorCheck suspectCount: suspectCount);//嫌疑值大于3认为是模拟器return suspectCount 3;}private int getUserAppNum(String userApps) {if (TextUtils.isEmpty(userApps)) return 0;String[] result userApps.split(package:);return result.length;}private String getProperty(String propName) {String property CommandUtil.getSingleInstance().getProperty(propName);return TextUtils.isEmpty(property) ? null : property;}/*** 特征参数-硬件名称** return 0表示可能是模拟器1表示模拟器2表示可能是真机*/private CheckResult checkFeaturesByHardware() {String hardware getProperty(ro.hardware);if (null hardware) return new CheckResult(RESULT_MAYBE_EMULATOR, null);int result;String tempValue hardware.toLowerCase();switch (tempValue) {case ttvm://天天模拟器case nox://夜神模拟器case cancro://网易MUMU模拟器case intel://逍遥模拟器case vbox:case vbox86://腾讯手游助手case android_x86://雷电模拟器result RESULT_EMULATOR;break;default:result RESULT_UNKNOWN;break;}return new CheckResult(result, hardware);}/*** 特征参数-渠道** return 0表示可能是模拟器1表示模拟器2表示可能是真机*/private CheckResult checkFeaturesByFlavor() {String flavor getProperty(ro.build.flavor);if (null flavor) return new CheckResult(RESULT_MAYBE_EMULATOR, null);int result;String tempValue flavor.toLowerCase();if (tempValue.contains(vbox)) result RESULT_EMULATOR;else if (tempValue.contains(sdk_gphone)) result RESULT_EMULATOR;else result RESULT_UNKNOWN;return new CheckResult(result, flavor);}/*** 特征参数-设备型号** return 0表示可能是模拟器1表示模拟器2表示可能是真机*/private CheckResult checkFeaturesByModel() {String model getProperty(ro.product.model);if (null model) return new CheckResult(RESULT_MAYBE_EMULATOR, null);int result;String tempValue model.toLowerCase();if (tempValue.contains(google_sdk)) result RESULT_EMULATOR;else if (tempValue.contains(emulator)) result RESULT_EMULATOR;else if (tempValue.contains(android sdk built for x86)) result RESULT_EMULATOR;else result RESULT_UNKNOWN;return new CheckResult(result, model);}/*** 特征参数-硬件制造商** return 0表示可能是模拟器1表示模拟器2表示可能是真机*/private CheckResult checkFeaturesByManufacturer() {String manufacturer getProperty(ro.product.manufacturer);if (null manufacturer) return new CheckResult(RESULT_MAYBE_EMULATOR, null);int result;String tempValue manufacturer.toLowerCase();if (tempValue.contains(genymotion)) result RESULT_EMULATOR;else if (tempValue.contains(netease)) result RESULT_EMULATOR;//网易MUMU模拟器else result RESULT_UNKNOWN;return new CheckResult(result, manufacturer);}/*** 特征参数-主板名称** return 0表示可能是模拟器1表示模拟器2表示可能是真机*/private CheckResult checkFeaturesByBoard() {String board getProperty(ro.product.board);if (null board) return new CheckResult(RESULT_MAYBE_EMULATOR, null);int result;String tempValue board.toLowerCase();if (tempValue.contains(android)) result RESULT_EMULATOR;else if (tempValue.contains(goldfish)) result RESULT_EMULATOR;else result RESULT_UNKNOWN;return new CheckResult(result, board);}/*** 特征参数-主板平台** return 0表示可能是模拟器1表示模拟器2表示可能是真机*/private CheckResult checkFeaturesByPlatform() {String platform getProperty(ro.board.platform);if (null platform) return new CheckResult(RESULT_MAYBE_EMULATOR, null);int result;String tempValue platform.toLowerCase();if (tempValue.contains(android)) result RESULT_EMULATOR;else result RESULT_UNKNOWN;return new CheckResult(result, platform);}/*** 特征参数-基带信息** return 0表示可能是模拟器1表示模拟器2表示可能是真机*/private CheckResult checkFeaturesByBaseBand() {String baseBandVersion getProperty(gsm.version.baseband);if (null baseBandVersion) return new CheckResult(RESULT_MAYBE_EMULATOR, null);int result;if (baseBandVersion.contains(1.0.0.0)) result RESULT_EMULATOR;else result RESULT_UNKNOWN;return new CheckResult(result, baseBandVersion);}/*** 获取传感器数量*/private int getSensorNumber(Context context) {SensorManager sm (SensorManager) context.getSystemService(SENSOR_SERVICE);return sm.getSensorList(Sensor.TYPE_ALL).size();}/*** 获取已安装第三方应用数量*/private int getUserAppNumber() {String userApps CommandUtil.getSingleInstance().exec(pm list package -3);return getUserAppNum(userApps);}/*** 是否支持相机*/private boolean supportCamera(Context context) {return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA);}/*** 是否支持闪光灯*/private boolean supportCameraFlash(Context context) {return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);}/*** 是否支持蓝牙*/private boolean supportBluetooth(Context context) {return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH);}/*** 判断是否存在光传感器来判断是否为模拟器* 部分真机也不存在温度和压力传感器。其余传感器模拟器也存在。** return false为模拟器*/private boolean hasLightSensor(Context context) {SensorManager sensorManager (SensorManager) context.getSystemService(SENSOR_SERVICE);Sensor sensor sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); //光线传感器if (null sensor) return false;else return true;}/*** 特征参数-进程组信息*/private CheckResult checkFeaturesByCgroup() {String filter CommandUtil.getSingleInstance().exec(cat /proc/self/cgroup);if (null filter) return new CheckResult(RESULT_MAYBE_EMULATOR, null);return new CheckResult(RESULT_UNKNOWN, filter);} }关键是 readSysProperty这个方法返回false就不是模拟器是真机true是模拟器 此包内的四个文件如下 CheckResult.java   package com.lahm.library;public class CheckResult {public static final int RESULT_MAYBE_EMULATOR 0;//可能是模拟器public static final int RESULT_EMULATOR 1;//模拟器public static final int RESULT_UNKNOWN 2;//可能是真机public int result;public String value;public CheckResult(int result, String value) {this.result result;this.value value;} } CommandUtil.java package com.lahm.library;import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.IOException;/*** Project Name:EasyProtector* Package Name:com.lahm.library* Created by lahm on 2018/6/8 16:23 .*/ public class CommandUtil {private CommandUtil() {}private static class SingletonHolder {private static final CommandUtil INSTANCE new CommandUtil();}public static final CommandUtil getSingleInstance() {return SingletonHolder.INSTANCE;}public String getProperty(String propName) {String value null;Object roSecureObj;try {roSecureObj Class.forName(android.os.SystemProperties).getMethod(get, String.class).invoke(null, propName);if (roSecureObj ! null) value (String) roSecureObj;} catch (Exception e) {value null;} finally {return value;}}public String exec(String command) {BufferedOutputStream bufferedOutputStream null;BufferedInputStream bufferedInputStream null;Process process null;try {process Runtime.getRuntime().exec(sh);bufferedOutputStream new BufferedOutputStream(process.getOutputStream());bufferedInputStream new BufferedInputStream(process.getInputStream());bufferedOutputStream.write(command.getBytes());bufferedOutputStream.write(\n);bufferedOutputStream.flush();bufferedOutputStream.close();process.waitFor();String outputStr getStrFromBufferInputSteam(bufferedInputStream);return outputStr;} catch (Exception e) {return null;} finally {if (bufferedOutputStream ! null) {try {bufferedOutputStream.close();} catch (IOException e) {e.printStackTrace();}}if (bufferedInputStream ! null) {try {bufferedInputStream.close();} catch (IOException e) {e.printStackTrace();}}if (process ! null) {process.destroy();}}}private static String getStrFromBufferInputSteam(BufferedInputStream bufferedInputStream) {if (null bufferedInputStream) {return ;}int BUFFER_SIZE 512;byte[] buffer new byte[BUFFER_SIZE];StringBuilder result new StringBuilder();try {while (true) {int read bufferedInputStream.read(buffer);if (read 0) {result.append(new String(buffer, 0, read));}if (read BUFFER_SIZE) {break;}}} catch (Exception e) {e.printStackTrace();}return result.toString();} }EmulatorCheckCallback接口 package com.lahm.library;/*** Project Name:EasyProtector* Package Name:com.lahm.library* Created by lahm on 2018/7/25 15:19 .*/ public interface EmulatorCheckCallback {void findEmulator(String emulatorInfo); } 在cocos.game.AppActivity这个类里先声明一个静态变量 public static boolean isEnumator false; 在onCreate(Bundle savedInstanceState)方法里这样调用 this.isEnumator EmulatorCheckUtil.getSingleInstance().readSysProperty(this, null); 这样就能检测出模拟器还是真机了为true就是模拟器false为真机。 再写个方法给typescript层调用 public static boolean isRunningOnEmulator() {return isEnumator;} typescript层这样调用即可   getEmulator() { //检查是否是模拟器if(native.reflection) {global.bEmulator native.reflection.callStaticMethod(com/cocos/game/AppActivity, isRunningOnEmulator,()Z);}elseglobal.bEmulator false;} 大功告成实测夜神模拟器蓝叠模拟器能检测出来。
http://wiki.neutronadmin.com/news/31166/

相关文章:

  • 网站开发的广告秦皇岛网站制作 微商城建设
  • 深圳网站建设公司收费标准做公司网站的费用
  • 镇海网站建设建设田达摩托车官方网站
  • 网站没完成可以备案么广告设计就业好找吗
  • 网站建设市场占有率望野诗
  • 在哪个网站可以学做淘宝详情那些网站可以上传自己做的视频
  • 响应式网站开发视频遂宁移动端网站建设
  • 中国建设银行网上银行网站开发网站排名优化
  • 网站不备案不能用吗国家建设部网站倪虹
  • 网站术语asp网站源码使用
  • 彩票网站可以做哪些活动手机视频网站建站
  • 互联网营销常用网站做擦边球视频网站
  • 沧州最新消息上海SEO网站优化推广公司
  • 网站平台建立学校网站建设目的
  • 做网站的ui免费网站建站有哪些
  • h5网站建设图标宁波企业网站设计
  • win7 iis asp网站配置文件萍乡手机网站建设
  • 网站建设与管理试题及答案1m带宽做网站快不
  • ICP备案域名网站wordpress插件tag
  • 怎样改网站英文域名html代码 wordpress
  • 徐州网站建设开发网站方案设计与论证
  • 网站建设需不需要招标高安网站建设公司
  • 网站开发者兼容模式出错文章网站模板哪个好
  • 从0开始做网站本地拖拽网站建设
  • 论坛网站开发成本室内设计师资格证书
  • 国内空间没备案可以打开网站吗展厅公司
  • 相城做网站的公司最新百度关键词排名
  • it教育网站建设如何修改wordpress站
  • 小程序是什么原理成都搜狗seo
  • 设计师网站兼职长沙网站制作公司