我正在尝试显示可用传感器的列表,但它就像没有!
我以为这是因为模拟器,但我在手机上尝试了它,结果是一样的.
private SensorManager mSensorManager;
TextView mSensorsTot,mSensorAvailables;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Get the texts fields of the layout and setup to invisible
mSensorsTot = (TextView) findViewById(R.id.sensoritot);
mSensorAvailables = (TextView) findViewById(R.id.sensoridisponibili);
// Get the SensorManager
mSensorManager= (SensorManager) getSystemService(SENSOR_SERVICE);
// List of Sensors Available
List<Sensor> msensorList = mSensorManager.getSensorList(SensorManager.SENSOR_ALL);
// Print how may Sensors are there
mSensorsTot.setText(msensorList.size()+" "+this.getString(R.string.sensors)+"!");
// Print each Sensor available using sSensList as the String to be printed
String sSensList = new String("");
Sensor tmp;
int x,i;
for (i=0;i<msensorList.size();i++){
tmp = msensorList.get(i);
sSensList = " "+sSensList+tmp.getName(); // Add the sensor name to the string of sensors available
}
// if there are sensors available show the list
if (i>0){
sSensList = getString(R.string.sensors)+":"+sSensList;
mSensorAvailables.setText(sSensList);
}
}
Run Code Online (Sandbox Code Playgroud)
Hen*_*ing 26
该常量SensorManager.SENSOR_ALL已弃用,似乎不再起作用.
Sensor.TYPE_ALL相反查询传感器列表,它应该工作(我的模拟器返回"金鱼3轴加速度计").
你可以尝试这个代码: -
package com.example.sensor;
import java.util.List;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends ActionBarActivity {
SensorManager smm;
List<Sensor> sensor;
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
smm = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
lv = (ListView) findViewById (R.id.listView1);
sensor = smm.getSensorList(Sensor.TYPE_ALL);
lv.setAdapter(new ArrayAdapter<Sensor>(this, android.R.layout.simple_list_item_1, sensor));
}
}
Run Code Online (Sandbox Code Playgroud)
只需在xml布局中放置一个列表视图即可.
您可以尝试按如下方式列出传感器:-
String cAPP_FOLDER = 您的文件夹路径
字符串 cSENSOR_FILE = 文件的名称
// Create a file to export the sensor info.
File fp = new File(cAPP_FOLDER + cSENSOR_FILE);
fp.createNewFile();
PrintWriter pw = new PrintWriter(new FileWriter(fp, true));
SensorManager oSM = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
List<Sensor> sensorsList = oSM.getSensorList(Sensor.TYPE_ALL);
for (Sensor s : sensorsList) {
pw.write(s.toString() + "\n");
}
pw.close();
Run Code Online (Sandbox Code Playgroud)
/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////
// 输出文件
{传感器名称=“BOSCH 加速度计传感器”,供应商=“Bosch Sensortec GmbH”,版本=2,类型=1,maxRange=156.88,分辨率=5.984497E-4,功率=0.13,minDelay=10000}
{传感器名称=“BOSCH 磁场传感器”,供应商=“Bosch Sensortec GmbH”,版本=2,类型=2,maxRange=1600.0,分辨率=0.3,功率=0.5,minDelay=40000}
{传感器名称=“BOSCH 方向传感器”,供应商=“Bosch Sensortec GmbH”,版本=2,类型=3,maxRange=360.0,分辨率=1.0,功率=0.63,minDelay=5000}
{传感器名称 =“BOSCH 陀螺仪传感器”,供应商 =“Bosch Sensortec GmbH”,版本=2,类型=4,maxRange=2500.0,分辨率=0.0038146973,功率=5.0,minDelay=5000}
{传感器名称=“BOSCH重力传感器”,供应商=“Bosch Sensortec GmbH”,版本= 2,类型= 9,maxRange = 19.61,分辨率= 5.984497E-4,功率= 5.63,minDelay = 5000}
{传感器名称=“BOSCH线性加速度传感器”,供应商=“Bosch Sensortec GmbH”,版本= 2,类型= 10,maxRange = 19.61,分辨率= 5.984497E-4,功率= 5.63,minDelay = 5000}
{传感器名称=“BOSCH 旋转矢量传感器”,供应商=“Bosch Sensortec GmbH”,版本=2,类型=11,maxRange=1.0,分辨率=5.9604645E-8,功率=5.63,minDelay=5000}
{传感器名称=“BOSCH 磁场未校准传感器”,供应商=“Bosch Sensortec GmbH”,版本=2,类型=14,maxRange=1600.0,分辨率=0.3,功率=0.5,minDelay=40000}
{传感器名称 =“BOSCH 游戏旋转矢量传感器”,供应商 =“Bosch Sensortec GmbH”,版本=2,类型=15,maxRange=1.0,分辨率=5.9604645E-8,功率=5.63,minDelay=5000}
{传感器名称 =“BOSCH 陀螺仪未校准传感器”,供应商 =“Bosch Sensortec GmbH”,版本=2,类型=16,maxRange=2500.0,分辨率=0.0038146973,功率=5.0,minDelay=5000}
{传感器名称=“BOSCH 地磁旋转矢量传感器”,供应商=“Bosch Sensortec GmbH”,版本=2,类型=20,maxRange=1.0,分辨率=5.9604645E-8,功率=5.63,minDelay=5000}
{传感器名称=“LIGHT”,供应商=“MTK”,版本= 1,类型= 5,maxRange = 10240.0,分辨率= 1.0,功率= 0.13,minDelay = 0}
{传感器名称=“PROXIMITY”,供应商=“MTK”,版本= 1,类型= 8,maxRange = 1.0,分辨率= 1.0,功率= 0.13,minDelay = 0}
{传感器名称=“SIGNIFICANT_MOTION”,供应商=“MTK”,版本= 1,类型= 17,maxRange = 85.0,分辨率= 0.1,功率= 0.5,minDelay = -1}
| 归档时间: |
|
| 查看次数: |
24677 次 |
| 最近记录: |