package com.smatek.px30smatekapi;
|
|
import android.app.ISmatekListener;
|
import android.app.SmatekManager;
|
import android.content.Context;
|
import android.content.Intent;
|
import android.hardware.Sensor;
|
import android.hardware.SensorEvent;
|
import android.hardware.SensorEventListener;
|
import android.hardware.SensorManager;
|
import android.media.AudioManager;
|
import android.os.Build;
|
import android.os.SystemClock;
|
import android.provider.Settings;
|
import android.support.annotation.RequiresApi;
|
import android.support.v7.app.AppCompatActivity;
|
import android.os.Bundle;
|
import android.text.TextUtils;
|
import android.util.Log;
|
import android.view.InputDevice;
|
import android.view.KeyEvent;
|
import android.view.MotionEvent;
|
import android.view.View;
|
import android.widget.Button;
|
import android.widget.EditText;
|
import android.widget.SeekBar;
|
import android.widget.TextView;
|
import android.widget.Toast;
|
|
import com.smatek.px30smatekapi.utils.EthernetUtils;
|
|
import java.lang.reflect.Method;
|
|
import static android.content.ContentValues.TAG;
|
|
|
public class MainActivity extends AppCompatActivity implements View.OnClickListener, SeekBar.OnSeekBarChangeListener {
|
|
private Button btnApiVersion, btnDeviceModel, btnOsVersion,
|
btnRunningMemory, btnInnerStorage, btnFreeStorage,
|
btnKernelVersion, btnBuilderNumber,
|
btnShutDown, btnReboot, btnScreenshot, btnBrightness,
|
btnRotation, btnHeight, btnWidth, btnOpenBackLight,
|
btnCloseBackLight, btnStatusBarShow, btnStatusBarHide,
|
btnEthMacAddress, btnEthIpAddress, btnScardPath, btnUsbPath,
|
btnInner, btnInstall,
|
btnSysTime, btnSysDate, btn24, btn12, btnEthernetConnect,
|
btnSubmitStaticIp, btnSleep, btnScreen, btnScreenOpen, btnMasterClear, btnFilterPermission,
|
btnOta, btnKeyInput, btnCpuGovernor, btnFrequencies, btnCurrentFreq, btnCpuControl, btnDramCurrentFreq,
|
btnDramGovernor, btnWriteGpio, btnReadGpio, btnNetmask, btnGateway, btnDns, btnDisconnectEth, btnConnectEth, btnWwitchDhcp;
|
// btnWatchDogOpen, btnWatchDogClose,
|
private SeekBar sbVolume;
|
private TextView tvContent;
|
private EditText editIpAddress, editGateway, editNetmask, editDns1, editDns2, editBrightness,
|
editRotation, editGovernor, editFrequencies, editCpuNode, editCpuNodeValue, editDramGovernor, editGpioInput, editGpioInputValue;
|
|
|
private SmatekManager smatekManager;
|
private static String TAG = "MainActivity";
|
private MyISmatekListener myISmatekListener;
|
|
private SensorManager mSensorManager;
|
private MySensorEventListener sensorEventListener;//光线距离传感器
|
|
private int screenBrightness = 100;
|
|
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR2)
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setContentView(R.layout.activity_main);
|
initView();
|
smatekManager = (SmatekManager) getSystemService("smatek");
|
myISmatekListener = new MyISmatekListener();
|
smatekManager.addSmatekListener(myISmatekListener);
|
//光线距离传感器
|
mSensorManager = (SensorManager)this.getSystemService(this.SENSOR_SERVICE);
|
sensorEventListener = new MySensorEventListener();
|
Sensor als = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
|
mSensorManager.registerListener(sensorEventListener, als,SensorManager.SENSOR_DELAY_NORMAL);
|
Sensor ps = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
|
mSensorManager.registerListener(sensorEventListener, ps,SensorManager.SENSOR_DELAY_NORMAL);
|
|
}
|
|
|
private void initView() {
|
tvContent = findViewById(R.id.tv_content);
|
btnApiVersion = findViewById(R.id.btn_api_version);
|
btnDeviceModel = findViewById(R.id.btn_device_model);
|
btnOsVersion = findViewById(R.id.btn_os_version);
|
btnRunningMemory = findViewById(R.id.btn_running_memory);
|
btnInnerStorage = findViewById(R.id.btn_inner_storage);
|
btnFreeStorage = findViewById(R.id.btn_free_storage);
|
btnKernelVersion = findViewById(R.id.btn_kernel_version);
|
btnBuilderNumber = findViewById(R.id.btn_builder_number);
|
btnShutDown = findViewById(R.id.btn_shut_down);
|
btnReboot = findViewById(R.id.btn_reboot);
|
btnScreenshot = findViewById(R.id.btn_screenshot);
|
btnBrightness = findViewById(R.id.btn_brightness);
|
btnRotation = findViewById(R.id.btn_rotation);
|
btnHeight = findViewById(R.id.btn_height);
|
btnWidth = findViewById(R.id.btn_width);
|
btnOpenBackLight = findViewById(R.id.btn_open_back_light);
|
btnCloseBackLight = findViewById(R.id.btn_close_back_light);
|
btnStatusBarShow = findViewById(R.id.btn_statusBar_show);
|
btnStatusBarHide = findViewById(R.id.btn_statusBar_hide);
|
btnEthMacAddress = findViewById(R.id.btn_eth_mac_address);
|
btnEthIpAddress = findViewById(R.id.btn_eth_ip_address);
|
btnScardPath = findViewById(R.id.btn_sdcard);
|
btnUsbPath = findViewById(R.id.btn_usb);
|
btnInner = findViewById(R.id.btn_inner);
|
btnInstall = findViewById(R.id.btn_install);
|
// btnWatchDogOpen = findViewById(R.id.btn_watch_dog_open);
|
// btnWatchDogClose = findViewById(R.id.btn_watch_dog_close);
|
btnSysTime = findViewById(R.id.btn_sys_time);
|
btnSysDate = findViewById(R.id.btn_sys_date);
|
btn24 = findViewById(R.id.btn_24);
|
btn12 = findViewById(R.id.btn_12);
|
btnEthernetConnect = findViewById(R.id.btn_ethernet_connect);
|
editRotation = findViewById(R.id.edit_rotation);
|
|
sbVolume = findViewById(R.id.sb_volume);
|
sbVolume.setOnSeekBarChangeListener(this);
|
|
editIpAddress = findViewById(R.id.edit_ip_address);
|
editGateway = findViewById(R.id.edit_gateway);//网关
|
editNetmask = findViewById(R.id.edit_netmask);//掩码
|
editDns1 = findViewById(R.id.edit_dns1);
|
editDns2 = findViewById(R.id.edit_dns2);
|
btnSubmitStaticIp = findViewById(R.id.btn_submit_static_ip);
|
|
btnSleep = findViewById(R.id.btn_sleep);
|
btnScreen = findViewById(R.id.btn_screen);
|
btnScreenOpen = findViewById(R.id.btn_screen_open);
|
editBrightness = findViewById(R.id.edit_brightness);
|
btnMasterClear = findViewById(R.id.btn_master_clear);
|
btnFilterPermission = findViewById(R.id.btn_filter_permission);
|
btnOta = findViewById(R.id.btn_ota);
|
btnKeyInput = findViewById(R.id.btn_key_input);
|
editGovernor = findViewById(R.id.edit_cpu_governor);
|
editFrequencies = findViewById(R.id.edit_cpu_frequencies);
|
btnCpuGovernor = findViewById(R.id.btn_cpu_governor);
|
btnFrequencies = findViewById(R.id.btn_cpu_frequencies);
|
btnCurrentFreq = findViewById(R.id.btn_current_freq);
|
editCpuNode = findViewById(R.id.edit_cpu_node);
|
editCpuNodeValue = findViewById(R.id.edit_cpu_node_value);
|
btnCpuControl = findViewById(R.id.btn_cpu_control);
|
btnDramCurrentFreq = findViewById(R.id.btn_dram_current_freq);
|
editDramGovernor = findViewById(R.id.edit_dram_governor);
|
btnDramGovernor = findViewById(R.id.btn_dram_governor);
|
editGpioInput = findViewById(R.id.edit_gpio_input);
|
btnWriteGpio = findViewById(R.id.btn_write_gpio);
|
btnReadGpio = findViewById(R.id.btn_read_gpio);
|
editGpioInputValue = findViewById(R.id.edit_gpio_input_value);
|
|
btnNetmask = findViewById(R.id.btn_netmask);
|
btnGateway = findViewById(R.id.btn_gateway);
|
btnDns = findViewById(R.id.btn_dns);
|
btnDisconnectEth = findViewById(R.id.btn_disconnect_eth);
|
btnConnectEth = findViewById(R.id.btn_connect_eth);
|
btnWwitchDhcp = findViewById(R.id.btn_switch_dhcp);
|
|
|
btnApiVersion.setOnClickListener(this);
|
btnDeviceModel.setOnClickListener(this);
|
btnOsVersion.setOnClickListener(this);
|
btnRunningMemory.setOnClickListener(this);
|
btnInnerStorage.setOnClickListener(this);
|
btnFreeStorage.setOnClickListener(this);
|
btnKernelVersion.setOnClickListener(this);
|
btnBuilderNumber.setOnClickListener(this);
|
btnShutDown.setOnClickListener(this);
|
btnReboot.setOnClickListener(this);
|
btnScreenshot.setOnClickListener(this);
|
btnBrightness.setOnClickListener(this);
|
btnRotation.setOnClickListener(this);
|
btnHeight.setOnClickListener(this);
|
btnWidth.setOnClickListener(this);
|
btnOpenBackLight.setOnClickListener(this);
|
btnCloseBackLight.setOnClickListener(this);
|
btnStatusBarShow.setOnClickListener(this);
|
btnStatusBarHide.setOnClickListener(this);
|
btnEthMacAddress.setOnClickListener(this);
|
btnEthIpAddress.setOnClickListener(this);
|
btnScardPath.setOnClickListener(this);
|
btnUsbPath.setOnClickListener(this);
|
btnInner.setOnClickListener(this);
|
btnInstall.setOnClickListener(this);
|
// btnWatchDogOpen.setOnClickListener(this);
|
// btnWatchDogClose.setOnClickListener(this);
|
|
btnSysTime.setOnClickListener(this);
|
btnSysDate.setOnClickListener(this);
|
btn24.setOnClickListener(this);
|
btn12.setOnClickListener(this);
|
btnEthernetConnect.setOnClickListener(this);
|
btnSubmitStaticIp.setOnClickListener(this);
|
btnSleep.setOnClickListener(this);
|
btnScreen.setOnClickListener(this);
|
btnScreenOpen.setOnClickListener(this);
|
btnMasterClear.setOnClickListener(this);
|
btnFilterPermission.setOnClickListener(this);
|
btnOta.setOnClickListener(this);
|
btnKeyInput.setOnClickListener(this);
|
btnCpuGovernor.setOnClickListener(this);
|
btnFrequencies.setOnClickListener(this);
|
btnCurrentFreq.setOnClickListener(this);
|
btnCpuControl.setOnClickListener(this);
|
btnDramCurrentFreq.setOnClickListener(this);
|
btnDramGovernor.setOnClickListener(this);
|
|
btnReadGpio.setOnClickListener(this);
|
btnWriteGpio.setOnClickListener(this);
|
|
btnNetmask.setOnClickListener(this);
|
btnGateway.setOnClickListener(this);
|
btnDns.setOnClickListener(this);
|
btnDisconnectEth.setOnClickListener(this);
|
btnConnectEth.setOnClickListener(this);
|
btnWwitchDhcp.setOnClickListener(this);
|
|
|
}
|
|
|
@Override
|
public void onClick(View v) {
|
switch (v.getId()) {
|
case R.id.btn_api_version:
|
String apiVersion = smatekManager.getAPIVersion();
|
Log.e(TAG, "apiVersion :" + apiVersion);
|
tvContent.setText(apiVersion);
|
Toast.makeText(this, "aip版本 :" + apiVersion, Toast.LENGTH_SHORT).show();
|
break;
|
case R.id.btn_device_model:
|
String deviceModel = smatekManager.getDeviceModel();
|
Log.e(TAG, "deviceModel :" + deviceModel);
|
tvContent.setText(deviceModel);
|
Toast.makeText(this, "设备model :" + deviceModel, Toast.LENGTH_SHORT).show();
|
break;
|
case R.id.btn_os_version:
|
String androidOSVersion = smatekManager.getAndroidOSVersion();
|
Log.e(TAG, "androidOSVersion :" + androidOSVersion);
|
tvContent.setText(androidOSVersion);
|
Toast.makeText(this, "系统版本 :" + androidOSVersion, Toast.LENGTH_SHORT).show();
|
break;
|
case R.id.btn_running_memory:
|
String runningMemory = smatekManager.getRunningMemory();
|
Log.e(TAG, "runningMemory :" + runningMemory);
|
tvContent.setText(runningMemory);
|
Toast.makeText(this, "运行内存 :" + runningMemory, Toast.LENGTH_SHORT).show();
|
break;
|
case R.id.btn_inner_storage:
|
String internalStorageMemory = smatekManager.getInternalStorageMemory();
|
Log.e(TAG, "internalStorageMemory :" + internalStorageMemory);
|
tvContent.setText(internalStorageMemory);
|
Toast.makeText(this, "内部存储路径 :" + internalStorageMemory, Toast.LENGTH_SHORT).show();
|
break;
|
case R.id.btn_free_storage:
|
String internalFreeStorageMemory = smatekManager.getInternalFreeStorageMemory();
|
Log.e(TAG, "internalFreeStorageMemory :" + internalFreeStorageMemory);
|
tvContent.setText(internalFreeStorageMemory);
|
Toast.makeText(this, "内部存储可用容量 :" + internalFreeStorageMemory, Toast.LENGTH_SHORT).show();
|
|
break;
|
case R.id.btn_kernel_version:
|
String kernelVersion = smatekManager.getKernelVersion();
|
Log.e(TAG, "kernelVersion :" + kernelVersion);
|
tvContent.setText(kernelVersion);
|
Toast.makeText(this, "kernel版本信息 :" + kernelVersion, Toast.LENGTH_SHORT).show();
|
|
break;
|
case R.id.btn_builder_number:
|
String builderNumberDisplay = smatekManager.getBuilderNumberDisplay();
|
Log.e(TAG, "builderNumberDisplay :" + builderNumberDisplay);
|
tvContent.setText(builderNumberDisplay);
|
Toast.makeText(this, "DisplayId :" + builderNumberDisplay, Toast.LENGTH_SHORT).show();
|
break;
|
case R.id.btn_shut_down:
|
smatekManager.shutdown();
|
break;
|
case R.id.btn_reboot:
|
smatekManager.reboot();
|
break;
|
case R.id.btn_screenshot:
|
smatekManager.screenshots("/storage/emulated/0/", "test##.png");
|
break;
|
case R.id.btn_brightness:
|
String trim = editBrightness.getText().toString().trim();
|
if (!TextUtils.isEmpty(trim)) {
|
smatekManager.setBrightness(Integer.parseInt(trim));
|
} else {
|
Toast.makeText(MainActivity.this, "情输入亮度值", Toast.LENGTH_LONG).show();
|
}
|
break;
|
case R.id.btn_rotation:
|
String rotation = editRotation.getText().toString().trim();
|
smatekManager.setRotation(rotation);
|
break;
|
case R.id.btn_height:
|
int screenHeight = smatekManager.getScreenHeight(this);
|
Log.e(TAG, "screenHeight :" + screenHeight);
|
tvContent.setText(screenHeight + "");
|
Toast.makeText(this, "高 :" + screenHeight, Toast.LENGTH_SHORT).show();
|
|
break;
|
case R.id.btn_width:
|
int screenWidth = smatekManager.getScreenWidth(this);
|
Log.e(TAG, "screenWidth :" + screenWidth);
|
tvContent.setText(screenWidth + "");
|
Toast.makeText(this, "宽 :" + screenWidth, Toast.LENGTH_SHORT).show();
|
break;
|
case R.id.btn_open_back_light:
|
smatekManager.setLcdBlackLight(true);
|
break;
|
case R.id.btn_close_back_light:
|
// isScreenClose = true;
|
smatekManager.setLcdBlackLight(false);
|
break;
|
case R.id.btn_statusBar_show:
|
Intent intent = new Intent();
|
intent.setAction("com.smatek.show.navigationbar");
|
intent.putExtra("show_navigationbar", true);//auto true 为显示 ,false 为 隐藏
|
sendBroadcast(intent);
|
|
break;
|
case R.id.btn_statusBar_hide:
|
Intent intent1 = new Intent();
|
intent1.setAction("com.smatek.show.navigationbar");
|
intent1.putExtra("show_navigationbar", false);//auto true 为显示 ,false 为 隐藏
|
sendBroadcast(intent1);
|
break;
|
case R.id.btn_eth_mac_address:
|
String ethMacAddress = smatekManager.getEthMacAddress();
|
Log.e(TAG, "ethMacAddress :" + ethMacAddress);
|
tvContent.setText(ethMacAddress);
|
Toast.makeText(this, "Mac 地址 :" + ethMacAddress, Toast.LENGTH_SHORT).show();
|
break;
|
case R.id.btn_eth_ip_address:
|
String ethIPAddress = smatekManager.getEthIPAddress();
|
Log.e(TAG, "ethIPAddress :" + ethIPAddress);
|
tvContent.setText(ethIPAddress);
|
Toast.makeText(this, "以太网ip地址 :" + ethIPAddress, Toast.LENGTH_SHORT).show();
|
|
break;
|
|
case R.id.btn_inner:
|
String primaryStoragePath = smatekManager.getPrimaryStoragePath();
|
Log.e(TAG, "primaryStoragePath :" + primaryStoragePath);
|
tvContent.setText(primaryStoragePath);
|
Toast.makeText(this, "内部存储路径 :" + primaryStoragePath, Toast.LENGTH_SHORT).show();
|
break;
|
case R.id.btn_sdcard:
|
String sdcardPath = smatekManager.getSdcardPath();
|
Log.e(TAG, "sdcardPath :" + sdcardPath);
|
tvContent.setText(sdcardPath);
|
Toast.makeText(this, "sdcard路径 :" + sdcardPath, Toast.LENGTH_SHORT).show();
|
|
break;
|
case R.id.btn_usb:
|
String usbPath = smatekManager.getUSBPath();
|
Log.e(TAG, "usbPath :" + usbPath);
|
tvContent.setText(usbPath);
|
Toast.makeText(this, "usb 路径 :" + usbPath, Toast.LENGTH_SHORT).show();
|
|
break;
|
case R.id.btn_install:
|
Intent intent3 = new Intent();
|
intent3.setAction("com.smatek.silentInstall");
|
intent3.putExtra("com.smatek.silentInstall.path", "/storage/emulated/0/GPS_Test.apk");
|
intent3.putExtra("com.smatek.silentInstall.packageName", "com.chartcross.gpstest");
|
sendBroadcast(intent3);
|
|
break;
|
case R.id.btn_sys_time:
|
smatekManager.setSystemTime(16, 5);
|
break;
|
case R.id.btn_sys_date:
|
smatekManager.setSystemDate(2019, 11, 5);
|
break;
|
case R.id.btn_24:
|
smatekManager.setDateTime24hour(true);
|
break;
|
case R.id.btn_12:
|
smatekManager.setDateTime24hour(false);
|
break;
|
case R.id.btn_ethernet_connect:
|
int ethernetLinkStatus = smatekManager.getEthernetLinkStatus();
|
Log.e(TAG, "ethernetLinkStatus :" + ethernetLinkStatus);
|
Toast.makeText(this, "以太网链接状态 :" + ethernetLinkStatus, Toast.LENGTH_SHORT).show();
|
|
break;
|
case R.id.btn_submit_static_ip:
|
//设置静态ip
|
String ipAddress = editIpAddress.getText().toString().trim();
|
String gateway = editGateway.getText().toString().trim();
|
String netmask = editNetmask.getText().toString().trim();
|
String dns1 = editDns1.getText().toString().trim();
|
String dns2 = editDns2.getText().toString().trim();
|
|
EthernetUtils ethernetUtils = new EthernetUtils();
|
boolean b = ethernetUtils.checkIPValue(ipAddress, gateway, netmask, dns1, dns2);
|
if (b) {
|
smatekManager.setStaticIp(ipAddress, netmask, gateway, dns1, dns2);
|
}
|
break;
|
case R.id.btn_sleep:
|
smatekManager.goToSleep();
|
|
break;
|
case R.id.btn_screen:
|
isScreenClose = true;
|
smatekManager.openOrCloseScreen(true);
|
break;
|
case R.id.btn_screen_open:
|
smatekManager.openOrCloseScreen(false);
|
break;
|
case R.id.btn_master_clear:
|
smatekManager.eraseAllData();
|
break;
|
case R.id.btn_filter_permission:
|
smatekManager.setFilterPermissionPackageName("com.smatek.px30smatekapi");
|
|
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, 0);
|
|
break;
|
case R.id.btn_ota:
|
Intent intent2 = new Intent();
|
intent2.setAction("com.smatek.ota.download.complete");
|
intent2.putExtra("com.smatek.ota.download.path", "/storage/emulated/0/px30_evb-ota-115442.zip");
|
sendBroadcast(intent2);
|
break;
|
|
case R.id.btn_key_input:
|
// 模拟键值输入
|
long now = SystemClock.uptimeMillis();
|
KeyEvent down = new KeyEvent(now, now, KeyEvent.ACTION_DOWN, 25, 0);
|
KeyEvent up = new KeyEvent(now, now, KeyEvent.ACTION_UP, 25, 0);
|
smatekManager.injectInputEvent(down);
|
smatekManager.injectInputEvent(up);
|
|
// //模拟触摸点触摸
|
// MotionEvent event = MotionEvent.obtain(now, now, MotionEvent.ACTION_DOWN, 960, 540, 0);
|
// MotionEvent event1 = MotionEvent.obtain(now, now, MotionEvent.ACTION_UP, 960, 540, 0);
|
// if ((event.getSource() & InputDevice.SOURCE_CLASS_POINTER) == 0) {
|
// event.setSource(InputDevice.SOURCE_TOUCHSCREEN);
|
// }
|
//
|
// if ((event1.getSource() & InputDevice.SOURCE_CLASS_POINTER) == 0) {
|
// event1.setSource(InputDevice.SOURCE_TOUCHSCREEN);
|
// }
|
// smatekManager.injectInputEvent(event);
|
// smatekManager.injectInputEvent(event1);
|
break;
|
case R.id.btn_current_freq:
|
String currentFreq = smatekManager.getDataFromNode("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq");
|
Log.e(TAG, "currentFreq :" + currentFreq);
|
Toast.makeText(this, "cpu当前频率 :" + currentFreq, Toast.LENGTH_SHORT).show();
|
|
break;
|
|
case R.id.btn_cpu_governor:
|
String cpuGovernor = editGovernor.getText().toString().trim();
|
Log.e(TAG, cpuGovernor);
|
if (cpuGovernor != null) {
|
smatekManager.writeToNode("/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor", cpuGovernor);
|
}
|
|
break;
|
case R.id.btn_cpu_frequencies:
|
String dataFromNode = smatekManager.getDataFromNode("/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies");
|
String[] spit = dataFromNode.trim().split(" ");
|
// 126000, 216000, 408000, 600000, 696000, 816000, 1008000, 1200000, 1416000, 1512000, 1608000
|
smatekManager.writeToNode("/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor", "userspace"); // 首先将cpu策略设置为userspace模式
|
smatekManager.writeToNode("/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed", spit[0]); //设置频率,spit[0] 是可用频率中的一个
|
|
break;
|
case R.id.btn_cpu_control:
|
String cpuNode = editCpuNode.getText().toString().trim();
|
String nodeValue = editCpuNodeValue.getText().toString().trim();
|
if (cpuNode != null && nodeValue != null) {
|
smatekManager.writeToNode(cpuNode, nodeValue);
|
}
|
break;
|
case R.id.btn_dram_current_freq:
|
String dramFreq = smatekManager.getDataFromNode("/sys/devices/platform/dmc/devfreq/dmc/cur_freq");
|
Log.e(TAG, "dramFreq :" + dramFreq);
|
Toast.makeText(this, "dram 当前频率 :" + dramFreq, Toast.LENGTH_SHORT).show();
|
|
break;
|
|
case R.id.btn_dram_governor:
|
String dramGovernor = editDramGovernor.getText().toString().trim();
|
if (dramGovernor != null) {
|
smatekManager.writeToNode("/sys/class/devfreq/dmc/governor", dramGovernor);// dramGovernor可传入 dmc_ondemand、userspace、powersave、performance、simple_ondemand
|
}
|
|
break;
|
case R.id.btn_write_gpio:
|
String gpio = editGpioInput.getText().toString().trim();
|
String gpioValue = editGpioInputValue.getText().toString().trim();
|
if (!TextUtils.isEmpty(gpio)) {
|
smatekManager.writeToNode(gpio, gpioValue);
|
} else {
|
Toast.makeText(this, "请输入节点", Toast.LENGTH_LONG).show();
|
}
|
|
break;
|
|
case R.id.btn_read_gpio:
|
String gpiotest = editGpioInput.getText().toString().trim();
|
if (!TextUtils.isEmpty(gpiotest)) {
|
String dataFromNode1 = smatekManager.getDataFromNode(gpiotest);
|
Toast.makeText(this, "当前的节点值:" + dataFromNode1, Toast.LENGTH_LONG).show();
|
|
} else {
|
Toast.makeText(this, "请输入节点", Toast.LENGTH_LONG).show();
|
}
|
|
break;
|
|
case R.id.btn_netmask: //子网掩码
|
String netmask1 = smatekManager.getNetmask();
|
Toast.makeText(this, "子网掩码:" + netmask1, Toast.LENGTH_LONG).show();
|
break;
|
|
case R.id.btn_gateway: //网关
|
String gateway1 = smatekManager.getGateway();
|
Toast.makeText(this, "网关:" + gateway1, Toast.LENGTH_LONG).show();
|
break;
|
|
case R.id.btn_dns://dns
|
String dns = smatekManager.getDns();
|
Toast.makeText(this, "dns:" + dns, Toast.LENGTH_LONG).show();
|
break;
|
|
case R.id.btn_disconnect_eth: //断开以太网
|
smatekManager.disconnectEth("eth0");
|
break;
|
|
case R.id.btn_connect_eth: //链接以太网
|
smatekManager.connectEth("eth0");
|
break;
|
|
case R.id.btn_switch_dhcp: //切换动态ip
|
smatekManager.switchDHCP();
|
break;
|
|
}
|
|
}
|
|
|
@Override
|
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
|
if (fromUser) {
|
switch (seekBar.getId()) {
|
case R.id.sb_volume:
|
// smatekManager.setSystemVolume(progress);
|
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
|
int streamMaxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
|
int i = (progress * streamMaxVolume / 100);
|
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, i, AudioManager.FLAG_PLAY_SOUND);
|
|
break;
|
}
|
}
|
|
}
|
|
@Override
|
public void onStartTrackingTouch(SeekBar seekBar) {
|
|
}
|
|
@Override
|
public void onStopTrackingTouch(SeekBar seekBar) {
|
|
}
|
|
|
private class MyISmatekListener implements ISmatekListener {
|
|
|
@Override
|
public void onKeyEvent(int i, int i1) {
|
Log.e(TAG, " 小板事件Key i :" + i + " i1 :" + i1);
|
}
|
|
@Override
|
public void ethernetLinkState(int i) {
|
Log.e(TAG, "ethernetLinkState i :" + i);
|
}
|
}
|
|
|
@Override
|
protected void onDestroy() {
|
super.onDestroy();
|
if (myISmatekListener != null) {
|
smatekManager.removeSmatekListener(myISmatekListener);
|
}
|
|
}
|
|
boolean isScreenClose = false;
|
//检测光感距离小于30cm,小于如果屏幕关闭则重新打开
|
private void checkWakeUpScreen(float mPROXIMITY){
|
if((65535.0 - mPROXIMITY) < 30){
|
Log.e(TAG, "小板 检测光感距离小于30");
|
//光感距离小于30cm
|
if(isScreenClose){
|
isScreenClose = false;
|
//打开屏幕背光
|
Log.e(TAG, "小板 重新打开屏幕");
|
smatekManager.openOrCloseScreen(false);
|
}
|
}
|
|
}
|
|
long setTime = 0;
|
//自动调节亮度
|
private void autoSetScreenBrightness(float mLIGHT){
|
long timecurrentTimeMillis = System.currentTimeMillis();
|
if((timecurrentTimeMillis - setTime) < 200) return;
|
//每200ms改变一次
|
setTime = timecurrentTimeMillis;
|
|
double percent = 1 - (mLIGHT / 9535.0);
|
|
screenBrightness = (int)(percent * 255);
|
|
if(screenBrightness > 255){
|
screenBrightness = 255;
|
}
|
|
if(screenBrightness < 0){
|
screenBrightness = 0;
|
}
|
|
Log.e(TAG, "小板 自动调节亮度:"+screenBrightness);
|
smatekManager.setBrightness(screenBrightness);
|
}
|
|
private final class MySensorEventListener implements SensorEventListener {
|
@Override
|
public void onSensorChanged(SensorEvent event) {
|
if(event.sensor.getType() == Sensor.TYPE_LIGHT) {
|
Log.e(TAG, "小板 光感亮度 values = " + event.values[0]);
|
autoSetScreenBrightness(event.values[0]);
|
} else if (event.sensor.getType() == Sensor.TYPE_PROXIMITY){
|
Log.e(TAG, "小板 光感距离 values = " +event.values[0]);
|
checkWakeUpScreen(event.values[0]);
|
}
|
}
|
@Override
|
public void onAccuracyChanged(Sensor sensor, int accuracy){
|
}
|
}
|
}
|