2013-04-30 53 views
0

由於設計原因,我必須使用擴展Dialog實現Android傳感器特定代碼。例如,訪問類擴展Dialog的Android傳感器

public class ImplEndUserGUI extends Dialog implements IEndUserGUI { 
    public void onCreate(Bundle savedInstanceState) { 
    setContentView(R.layout.enduserguilayout); 
    super.onCreate(savedInstanceState); 
    //TODO : I have to write Android specific code here.... 
    SensorManager sensorManager = 
     (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
    Sensor lightSensor = 
     sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); 
    ..... 
    } 
} 

現在的問題是,(我的Android的編程知識),Android不容許我用getSystemService(Context.SENSOR_SERVICE)ImplEndUserGUIextends Dialog。你能否建議我實現一個extends Dialog類的Android訪問代碼的方式。

+0

得到的SensorManager是有一個原因的getContext()。 getSystemService ...不起作用? – Tom 2013-04-30 17:15:09

+0

,因爲ImplEndUSerGUI類是用Dialog擴展的。 – Pankesh 2013-04-30 17:16:18

+0

我一定很困惑。 android.app.Dialog?這個怎麼樣:http://developer.android.com/reference/android/app/Dialog.html#getContext() – Tom 2013-04-30 17:19:21

回答

2

創建上下文PARAM

public ImplEndUserGUI(Context context) { 
    mContext = context; 
    } 

構造然後,你可以使用

SensorManager sensorManager = (SensorManager) mContext.getSystemService(Context.SENSOR_SERVICE); 
+0

非常感謝Hoan Nguyen。有用。 – Pankesh 2013-04-30 17:34:47

0

你幾乎可以隨時使用

SensorManager sensorManager = 
    (SensorManager) getActivity().getSystemService(Context.SENSOR_SERVICE);