BlackBerry Storm AccelerometerListener nejsou informováni o první změnu orientace

hlasů
1

To se zdá být dobře známý problém právě teď, ale přijal řešení se nezdá být pro nás pracoval.

Na BlackBerry Storm (JDE 4.7, standardní sada 4.7+ simulátory), následující kus kódu registruje AccelerometerListener . Posluchač není zavolá na první změně orientace zařízení, ale zavolá na každé následné změně orientace.

net.rim.device.api.system.AccelerometerSensor.Channel channel;

void registerAccelerometerListener()
{
    if ( AccelerometerSensor.isSupported() )
    {
        channel = AccelerometerSensor.openOrientationDataChannel(
            Application.getApplication());

        channel.setAccelerometerListener(this);
        // this class does indeed implement the AccelerometerListener interface
    }
}   

public void onData(AccelerometerData data)
{
    // should be called on every orientation change, 
    // but is only called on the second (and subsequent) orientation 
    // change, ignoring the first.
}

S výše uvedený kód, spuštění aplikace v režimu na výšku, pak mizerný přístroj na straně (nebo dělat jakékoliv jiné změně orientace) měly přinutit akcelerometr volat onData () posluchače. To se stane, ale jen na druhé a každé následující flip zařízení. První změna orientace je vždy ignorovány.

Přijímané řešení plovoucí kolem sítě se zdá být vynutit volání:

Ui.getUiEngineInstance().setAcceptableDirections(...);

... když je spuštěna aplikace s omezenými parametry, jako jsou:

Display.DIRECTION_NORTH 

... a pak volat to opět na nějakém místě později s parametry, které jsou skutečně žádoucí, jako například:

Display.DIRECTION_NORTH|Display.DIRECTION_WEST|Display.DIRECTION_EAST

Předpokládám, že to je chtěl nějak obnovit nebo nastartování akcelerometru vazby na aplikace.

Ale výše uvedené řešení se nezdá, že pracuje pro nás (to je jasné, kde mají být provedeny, na jednom z setAcceptableDirections (...) volání), a my jsme stále přilepená s vydáním AccelerometerListener není nazýván poprvé.

Má někdo úspěšně vyřešit to?

Položena 17/09/2009 v 03:25
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

BlackBerry Storm AccelerometerListener nejsou informováni o první změnu orientace

hlasů
1

To se zdá být dobře známý problém právě teď, ale přijal řešení se nezdá být pro nás pracoval.

Na BlackBerry Storm (JDE 4.7, standardní sada 4.7+ simulátory), následující kus kódu registruje AccelerometerListener . Posluchač není zavolá na první změně orientace zařízení, ale zavolá na každé následné změně orientace.

net.rim.device.api.system.AccelerometerSensor.Channel channel;

void registerAccelerometerListener()
{
    if ( AccelerometerSensor.isSupported() )
    {
        channel = AccelerometerSensor.openOrientationDataChannel(
            Application.getApplication());

        channel.setAccelerometerListener(this);
        // this class does indeed implement the AccelerometerListener interface
    }
}   

public void onData(AccelerometerData data)
{
    // should be called on every orientation change, 
    // but is only called on the second (and subsequent) orientation 
    // change, ignoring the first.
}

S výše uvedený kód, spuštění aplikace v režimu na výšku, pak mizerný přístroj na straně (nebo dělat jakékoliv jiné změně orientace) měly přinutit akcelerometr volat onData () posluchače. To se stane, ale jen na druhé a každé následující flip zařízení. První změna orientace je vždy ignorovány.

Přijímané řešení plovoucí kolem sítě se zdá být vynutit volání:

Ui.getUiEngineInstance().setAcceptableDirections(...);

... když je spuštěna aplikace s omezenými parametry, jako jsou:

Display.DIRECTION_NORTH 

... a pak volat to opět na nějakém místě později s parametry, které jsou skutečně žádoucí, jako například:

Display.DIRECTION_NORTH|Display.DIRECTION_WEST|Display.DIRECTION_EAST

Předpokládám, že to je chtěl nějak obnovit nebo nastartování akcelerometru vazby na aplikace.

Ale výše uvedené řešení se nezdá, že pracuje pro nás (to je jasné, kde mají být provedeny, na jednom z setAcceptableDirections (...) volání), a my jsme stále přilepená s vydáním AccelerometerListener není nazýván poprvé.

Má někdo úspěšně vyřešit to?

Odpovězeno 17/09/2009 v 03:25
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more