asteroid
asteroid copied to clipboard
[Feature Request] Phone camera app
Would like to be able to trigger photo capture on the connected phone from a watch app. Should be on ~3 second delay, so user does not have bunch of photos of tapping the watch. The app should detect when phone is in camera mode or start camera mode on the phone if possible. Using AsteroidOS Sync for Android, for integration with the phone.
This should not be too hard. The watch needs to pretend to be a BLE keyboard and then figure out whether it's attached to an iOS device or to an Android. If iOS, send the "Volume Up" key, otherwise send "Enter" key. That's it.
Acting as a keyboard means the watch would need to be in BR/EDR mode which would be bad for battery life.
Also, having the watch think about what type of device is connected to it is the opposite of the logic we want because in the future we may want to support new platforms that don't behave like this and it would be pretty random to pres the enter key, also I'm sure different android camera apps would behave differently etc...
I would much rather be in favor of an approach where the watch sends a "camera trigger" signal and the companion app is in charge of causing the platform-specific behavior (eg on buran we may want to launch a webcam app like Cheese or whatever) I guess for now with the current infrastructure this would look very similar to the Media BLE profile but if we reach the point where we have a generic API over BLE like using protobuf RPC serialization we could introduce a callback for this.
It's a good point about BLE, but I had intended to implement HID over GATT Profile 1.0. There are currently cheap two-button battery-powered devices on the market that have one iOS and one Android button, so that's an alternative.
But don't you think it would be a little bit of an odd behavior if the user would be halfway through texting someone on their android phone and randomly decides to try the asteroid camera app which triggers an enter key and sends the text message as consequence ? This feels a bit bizarre to me.
Now HID over GATT and an HID app could make some sense (sure it could be fun to use one's watch as trackpad for a phone) but piggybacking on it for a fairly specific application feels wrong to me
Your scenario could absolutely happen, and you could certainly argue that using keyboard input for taking a picture is a poor design choice, but that choice has already been made and deployed in around 3 billion Android and 1.3 billion iPhones and there is still no sync client for those 1.3 billion iPhone users.
The HID over GATT profile (HOGP) could certainly be used for different purposes once implemented. Controlling a slide presentation from the watch would be another very handy use.
you could certainly argue that using keyboard input for taking a picture is a poor design choice, but that choice has already been made and deployed in around 3 billion Android and 1.3 billion iPhones
I think it's totally fair that a camera app on a phone can be controlled by a keyboard if one is connected, but I think it's a crazy hack for an app to pretend it's a camera controller when it's really just a glorified Enter key. So it's not necessarily a poor design choice on the phone end because it has legitimate usages but I think it is a poor design on the device end to rely on this for a very specific purpose.
I would be fine with both a HID app that doesn't lie about what it does (press enter) as well as a camera app which does what it pretends to do (trigger a shot rather than an enter key). Now if there is also a HID code for camera trigger this could be a somewhat decent solution but if it's just "Enter" I would oppose to this.
and there is still no sync client for those 1.3 billion iPhone users
Well, that needs fixing and I don't think this should be used as a reason to implement the rest of the platforms with hacks :)
I think it's a crazy hack for an app to pretend it's a camera controller when it's really just a glorified Enter key
It's not even that glorified. ;) How about a different approach? We could implement HOGP which would probably go into asteroid-btsyncd and then have a generic app with a couple of user-configurable buttons. That way we could implement both the remote shutter thing or my slide-show controller in one application, and one could even do things like play Tetris on your computer, using the mapped keys on the watch.
and there is still no sync client for those 1.3 billion iPhone users
Well, that needs fixing and I don't think this should be used as a reason to implement the rest of the platforms with hacks :)
Haha! Fair enough.
I think it's a crazy hack for an app to pretend it's a camera controller when it's really just a glorified Enter key
It's not even that glorified. ;) How about a different approach? We could implement HOGP which would probably go into asteroid-btsyncd and then have a generic app with a couple of user-configurable buttons. That way we could implement both the remote shutter thing or my slide-show controller in one application, and one could even do things like play Tetris on your computer, using the mapped keys on the watch.
I'd be okay with this, although this seems overly specific for something in the default install but maybe that's where @eLtMosen does his wonder and turn this into a sane default app (as you said there are valid use cases like going through slides etc so wrapped up with a UX that doesn't lie, isn't complex and is useful this could be a cool default app)
Agreed. Good UX is an art, and I'm not much of an artist. :)