Robię aplikację na Androida. Aplikacja ma pewne cytaty zapisane w bazie danych i chcę przesuwać cytaty na ekranie za pomocą czujników telefonu. Tak więc chcę, aby kiedy telefon przesuwał się w lewo, widzę na ekranie następną wycenę i kiedy przesuwaję telefon w prawo, aby zobaczyć na ekranie poprzedni cytat. Jak myślisz, który telefon z czujnikiem jest lepszy? Próbuję użyć Type_orientation, ale mam błąd, który: Ta stała została uznana za przestarzałą na poziomie interfejsu API 8. Jak można ją zastąpić przez SensorManager.getOrientation(). Czy uważasz, że jest jakikolwiek inny czujnik, który jest dla mnie lepszy?Jak używać SensorManager.getOrientation() zamiast TYPE_ORIENTATION
package com.example.prova1;
import java.util.HashMap;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.TextView;
public class SlideQuote extends Activity implements SensorEventListener
{
//a TextView
private TextView quote;
private TextView author;
//the Sensor Manager
private SensorManager sManager;
float x;
int id;
int total;
String s1,s2;
Database quotedatabase = new Database(this);
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.slide_quote);
//get the TextView from the layout file
quote = (TextView) findViewById(R.id.textView3);
author = (TextView) findViewById(R.id.textView4);
id=1;
//get a hook to the sensor service
sManager= (SensorManager) getSystemService(Context.SENSOR_SERVICE);
if(sManager.getSensorList(Sensor.TYPE_ORIENTATION).size()!=0){
Sensor s =sManager.getSensorList(Sensor.TYPE_ORIENTATION).get(o);
sManager.registerListener(this,s ,SensorManager.SENSOR_DELAY_NORMAL);
s1= quotedatabase.getQuote(id);
s2= quotedatabase.getAuthor(id);
total=quotedatabase.getQuotesCount();
quote.setText(s1);
author.setText(s2);
}
}
//when this Activity starts
@Override
protected void onResume()
{
super.onResume();
/*register the sensor listener to listen to the gyroscope sensor, use the
callbacks defined in this class, and gather the sensor information as quick
as possible*/
sManager.registerListener(this, sManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),SensorManager.SENSOR_DELAY_NORMAL);
}
//When this Activity isn't visible anymore
@Override
protected void onStop()
{
//unregister the sensor listener
sManager.unregisterListener(this);
super.onStop();
}
@Override
public void onAccuracyChanged(Sensor arg0, int arg1)
{
//Do nothing.
}
@Override
public void onSensorChanged(SensorEvent event)
{
//if sensor is unreliable, return void
if (event.accuracy == SensorManager.SENSOR_STATUS_UNRELIABLE)
{
return;
}
//else it will output the Roll, Pitch and Yawn values
x=event.values[2];
if(x>25){
if(id==total)
{id=1;
}
else{
id++;
}
s1= quotedatabase.getQuote(id);
s2= quotedatabase.getAuthor(id);
quote.setText(s1);
author.setText(s2);
}
if(x<-25){
if(id==1)
{id=total;}
else{
id--;}
s1= quotedatabase.getQuote(id);
s2= quotedatabase.getAuthor(id);
quote.setText(s1);
author.setText(s2);
}
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
sManager.unregisterListener(this);
Intent backIntent = new Intent(getApplication(), Quote.class);
finish();
startActivity(backIntent);
}
}
Jak to zastąpić ** słuchacz typu TYPE_ORIENTATION **? –