本帖最后由 z00171071 于 2012-03-13 10:03:51 编辑

解决方案 »

  1.   

    官方文档我看过,思路和这个一致,就是通过getSystemService获取传感器管理器,可是我在这一步就得到一个null,在我2.2的手机上测试的,难道是我手机有问题了?可是通过工程命名检测各种传感器都是好使的啊
      

  2.   

      请问你看了log吗?为什么不尝试看下原因是什么呢?不会又是一个忘记在manifest文件添加权限的吧
      

  3.   


        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            Log.i(TAG,"begin");
            sm = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
            if(sm == null){
             Log.i(TAG,"sm is null");
             return;
            }else{
             Log.i(TAG,"sm is ok");
            }
            
            if(sm.registerListener(myAccelerometerListener,
             sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
             SensorManager.SENSOR_DELAY_NORMAL)){
             Log.i(TAG,"sm register success");
            }else{
             Log.i(TAG,"sm register failed");
             return;
            }
        }同一段代码,在2.2和4.0.3上都测试了一遍,结果是:
    2.2上, 只打印了begin,然后就什么都没有了;
    4.0.3上,一切正常。可以看出,2.2上的代码在调用getSystemService时,无法返回。楼上的大侠给指点一下,小弟刚刚接触没几天,刚才搜了一下百度了一下权限,还是一头雾水,谢谢了