2012-05-10 17 views
4

我正在制作我的第一个动态壁纸的过程。我从示例CubeWallpaper中的代码开始并对其进行修改。到目前为止事情一直很顺利,现在我正在绘制自己的完全不同的动画图形。从动态壁纸阅读倾斜传感器

我现在希望我的图形能够响应手机的倾斜程度。我之前在非壁纸应用中实施了倾斜传感器。但是,当我试图将我的倾斜代码包含在壁纸中时,onSensorChanged()方法似乎不会被调用 - 至少我的日志消息从不出现在logcat中。

有一两件事我不知道是在哪里追加implements SensorEventListener。它应该是我的课程延伸WallpaperService或其子类延伸Engine?..其实我已经尝试了两种方式 - 而且都没有工作。是否有可能需要做额外的事情才能使倾斜工作?

编辑:目前我的猜测是,implements SensorEventListener追加到扩展Engine类,所以我的代码的要点如下:

编辑:难道是与哪个线程SensorEventListener正在运行?我在某处阅读它需要在UI线程上。

public class MicksWallPaper extends WallpaperService 
{ 
    // blah blah 

    class MyWallPaper extends Engine implements SharedPreferences.OnSharedPreferenceChangeListener , SensorEventListener 
    { 
     SensorManager sensorManager = null; 
     onCreate() 
     { 
      sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); 
     } 

     public void onSensorChanged(SensorEvent event) 
     { 
     Log.i("wp:","onSensorChanged"); // I never see this message 
      synchronized (this) 
      { 
       switch (event.sensor.getType()) 
       { 
        case Sensor.TYPE_ORIENTATION: 
         pitch = event.values[1]; 
         Log.i("pitch=",""+pitch); 
        break; 
       } 
      }  
     } 
    }  
} 

编辑:问题解决了。多么尴尬 - 我只是忘记给我的sensorManager调用registerListener。

+0

添加您的最终编辑作为您自己问题的答案...您可以获得更多SO布朗尼分数! –

回答

0

(关于食人魔的建议...)

问题解决了。多么尴尬 - 我只是忘记给我的sensorManager调用registerListener。