Welcome!

Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

Native Development

Reply
Super Contributor
lyon819
Posts: 253
Registered: ‎08-19-2010
My Device: BB10, Playbook, 9900, 9800, 9700, 9550, 9530, 9500, 8700.
My Carrier: TT
Accepted Solution

How to get Acceleration and GPS in the same time??

Purpose: Obtain Acceleration and GPS in the same time

 

Current status: I can get acceleration or GPS. When I try to get both data, the code will stop.

 

Mini Code

If (bps_event_get_domain(event) == sensor_get_domain() ) {
  handle_acceleration_data();
}
if (bps_event_get_domain(event) == geolocation_get_domain()){

  handle_gps_data();

}

 

Question: Does anyone know how to get both data in one event or other methods??

 

Thank your attention,

 

 

-Fight with BB10
Please use plain text.
BlackBerry Development Advisor
jhoffmann
Posts: 38
Registered: ‎10-26-2011
My Device: BlackBerry Bold 9900
My Carrier: Rogers

Re: How to get Acceleration and GPS in the same time??

Your code shows the handling of events, but not the requesting or getting of events.  Can you show more of your code?  The following should work (note there is no error checking):

 

sensor_request_events(SENSOR_TYPE_ACCELEROMETER);
geolocation_set_period(1);
geolocation_request_events(0);

bps_event_t *event;
while (true) {
    
    bps_get_event(&event, -1);
    if (!event) {
        continue;
    }

    if (bps_event_get_domain(event) == sensor_get_domain()) {
        handle_acceleration_data(event);
    } else if (bps_event_get_domain(event) == geolocation_get_domain()) {
        handle_gps_data(event);
    }
}

 

Please use plain text.
Super Contributor
lyon819
Posts: 253
Registered: ‎08-19-2010
My Device: BB10, Playbook, 9900, 9800, 9700, 9550, 9530, 9500, 8700.
My Carrier: TT

Re: How to get Acceleration and GPS in the same time??

Thanks  jhoffmann

 

Problem:

I added the gpsrequest in a wrong line.

 

Solution:

 

else if (NAVIGATOR_WINDOW_STATE == event_code) {
    if (navigator_event_get_window_state(event) == NAVIGATOR_WINDOW_FULLSCREEN) {
        sensor_request_events(SENSOR_TYPE_ACCELEROMETER);
        geolocation_request_events(0);
    }
} else if (bps_event_get_domain(event) == sensor_get_domain() ) {

-Fight with BB10
Please use plain text.