Акселерометр + магнитный датчик, безусловно, путь. Служба GPS не возвращает подшипник, если устройство неподвижно. Метод getBearing()
возвращает что-то, только если устройство движется. Как указано в документации, hasBearing()
обычно возвращает false.
На самом деле, слово подшипник довольно опасно при использовании в этих условиях, поскольку подшипник от акселерометра понятен как направление, в которое направлено устройство, а направление от службы GPS - это направление, в котором движется устройство.