Does that work?  I though that Camera.orientChange was a different object from Camera.orientChange.bind(Camera), so I would expect this code to do nothing.

If so, the addEventListener() below might keep adding multiple copies of the same handler!

If you can verify that the devicemotion events stop when the the camera is not the active app, then it is fine with me to leave this code out.