2016-03-29 7 views
1

Android'de Jiroskop'um için Hizmet oluşturmaya çalışıyorum ancak getSystemService ile sorun yaşamaya devam ediyorum.getSystemService (SENSOR_SERVICE) ile ilgili sorun - Zaten uygulanmış içerik

Bir çözüm bulmaya çalışan forumlarda arama yapıyorum, ancak çoğu durumda içeriği yalnızca MainActivity'den alma sorunu var.

public class GyroData implements SensorEventListener { 

private final Context mContext; 
protected SensorManager mSensorManager; 

public GyroData(Context context) { 
    mContext = context; 
    mSensorManager = (SensorManager) mContext.getSystemService(Context.SENSOR_SERVICE); 
} 

Yukarıda gördüğünüz gibi, bunu zaten yaptım, yine de şu hatayı alıyorum.

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{sw806f16.p8project/sw806f16.p8project.CameraActivity}: java.lang.IllegalStateException: System services not available to Activities before onCreate() 
at sw806f16.p8project.GyroData.setupSensorManager(GyroData.java:24) 

DÜZENLEME: MainActivity

den Eklenen kod
public class CameraActivity extends Activity implements LocationListener, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener { 
public static final String TAG = "CameraActivity"; 

LocationService gps = new LocationService(this); 
GyroData gyro = new GyroData(this); 
+0

Sorun, “GyroData” sınıfının değil, “GyroData” öğesini başlattığınız yerdir. –

+0

Daha fazla açıklayabilir misiniz, çünkü onu gerçekten görmüyorum. –

+0

Lütfen ilgili kodu 'MainActivity''den gönderin. –

cevap

1

Sen başlatmasını ediyoruz GyroDataCameraActivity 'ın <init> yöntem içinde; Yani, herhangi bir yöntemin dışında. Bu onCreate() ve super.onCreate() da dahil olmak üzere herhangi bir tanımlanmış yöntem çağrılmadan önce gerçekleşir, bu sistem hizmetlerini isteyebilmeniz için önce oluşması gerekir, GyroData 'in yapıcısında olduğunuz gibi.

super.onCreate() numaralı çağrıdan sonra gyro ilklendirmesini onCreate() numaralı çağrıya taşıyın. gps başlatma ile aynı şeyi yapmalısınız.

İlgili konular