Guest User

Untitled

a guest
Apr 20th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.33 KB | None | 0 0
  1. public class ActivityMain extends Activity {
  2. protected static final long DEFAULT_WAIT_TIMEOUT_MS = 1000;
  3.  
  4. private final DefaultServiceConnectionListener mConnectionListener =
  5. new DefaultServiceConnectionListener();
  6.  
  7. private Car car;
  8. private TextView textView;
  9.  
  10.  
  11. private CarSensorManager.OnSensorChangedListener onSensorChangedListener =
  12. carSensorEvent -> textView.setText(carSensorEvent.toString());
  13. private CarSensorManager carSensorManager;
  14.  
  15. @Override
  16. protected void onCreate(@Nullable Bundle savedInstanceState) {
  17. super.onCreate(savedInstanceState);
  18. setContentView(R.layout.activity_main);
  19. textView = findViewById(R.id.display_txt);
  20. car = Car.createCar(this, mConnectionListener, null);
  21. car.connect();
  22. try {
  23. mConnectionListener.waitForConnection(DEFAULT_WAIT_TIMEOUT_MS);
  24. } catch (InterruptedException e) {
  25. e.printStackTrace();
  26. }
  27. }
  28.  
  29. @Override
  30. protected void onPause() {
  31. super.onPause();
  32. if (carSensorManager != null)
  33. carSensorManager.unregisterListener(onSensorChangedListener);
  34. }
  35.  
  36. protected class DefaultServiceConnectionListener implements ServiceConnection {
  37. private final Semaphore mConnectionWait = new Semaphore(0);
  38.  
  39. public void waitForConnection(long timeoutMs) throws InterruptedException {
  40. mConnectionWait.tryAcquire(timeoutMs, TimeUnit.MILLISECONDS);
  41. }
  42.  
  43. @Override
  44. public void onServiceDisconnected(ComponentName name) {
  45. System.out.println(name.getShortClassName());
  46. }
  47.  
  48. @Override
  49. public void onServiceConnected(ComponentName name, IBinder service) {
  50. System.out.println(name.getShortClassName());
  51. mConnectionWait.release();
  52. try {
  53. carSensorManager = (CarSensorManager) car.getCarManager(Car.SENSOR_SERVICE);
  54. int[] supportedSensors = carSensorManager.getSupportedSensors();
  55. for (int sensor: supportedSensors) {
  56. carSensorManager.registerListener(onSensorChangedListener, sensor, CarSensorManager.SENSOR_RATE_NORMAL);
  57. }
  58. } catch (Exception e) {
  59. e.printStackTrace();
  60. }
  61. }
  62. }
  63. }
Add Comment
Please, Sign In to add comment