OK, during the last 3 days I spent TONS of time trying to make more progress with this setup. I concentrated on the following areas:
- Trying to make Alarms work
- Trying to get the Weather work
- Trying to get S Health work
- Trying to make Gear Software Update work
- Trying to make S Voice work on the phone
It turns out Samsung (probably over time) significantly deviated from the stock Android code base, to the point it is REALLY difficult to make Samsung applications work on a device with different Android framework files. I went through several steps trying to mitigate this problem:
- Bringing the packages providing the core Samsung functionality over from Samsung ROMs. We have already done this in the tutorial with S Voice, Samsung Apps (Samsung app store) and Samsungservice (this one provides access to Samsung account). Fortunately, these apps didn't rely heavily on Samsung-specific framework. This is not the case with other packages though. Good examples are Samsung ClockPackage (responsible for Alarms) and Weather. These APKs refused to run on non-Samsung platform because of their reliance on Samsung-specific code embedded in the device framework.
- Bringing additional Samsung-specific system modules over from Samsung ROMs. This includes, for example, TouchWiz framework JARs and resources. This did help a little, for example, S Voice finally showed its UI and Weather widget was able to instantiate. However, they both were completely unresponsive and empty. So no real help here.
- Finally, I started investigating the content of the framework JARs and APKs. It turns out Samsung provides A LOT of additional modules in those. But this is only part of the problem. The bigger problem is the fact they OVERRIDE some of the classes defined by Android framework, often extending their functionality. I went to extent of decompiling Samsung framework JARs, extracting some of the class files from there and adding them into my HTC One M8 framework JARs. This was an exciting exercise, often resulting in my device getting stuck at boot screen, rebooting shortly after boot or throwing tons of error message at me upon boot. This way, for example, I was able to finally get the Weather app installed on the Gear and Weather widget instantiating with proper data and UI on the phone. However, the widget configuration still crashed, so it was capable of showing, and relaying to the watch, only the current local weather. It also didn't update automatically on the phone and manually from the watch (it did update when hitting the update button on the phone). At the same time, other functionality broke, for example, S Voice and Schedule ceased properly working (they did work once in a while but, generally, ended up non-working for most of the time). I did manage to make Gear Software update to reliably work, however, I doubt the trouble of messing around with the system framework files is really worth it.
Some further directions to fix the issues above:
- Manually merging Samsung and non-Samsung core framework code. This is tedious work which I'm not going to do.
- Making changes in Samsung Gear Manager App and its components (also on the source code level). This is also something I haven't really considered.
In this situation, perhaps, we should ask ourselves, what are we REALLY missing?
- Alarms is probably the biggest one. However, using an Alarm app running on the watch itself is a much cleaner solution. Why do you need to share your phone alarms with the watch? I already started using Sleep Genius on the watch as alarm substitute, and it's quite promising. Has some quirks, but it's generally fine. I'm sure there will be more Alarm applications available for the watch soon.
- I'm not missing Weather that much. After all, I can just say to S Voice "Show Weather", and it'll basically display the same information for me. So why bother?
- Having Google Now on the phone makes having S Voice on it really redundant. The only S Voice integration currently missing on the watch is SMS. Emails are not working at all, I don't know if they're S Voice-enabled on Samsung devices.
I think generic solution for all these will be making a Google Now app for the Gear. This will effectively make S Voice redundant everywhere.
- Changing default SMS templates is not working as well. As they must be stored somewhere on the phone, I'm pretty sure they can be changed on the file system.
- The issue of phone calls answered on the Gear can be solved with Tasker and alike.
- The issue of selecting specific calendars to be displayed in the Schedule on the Gear can be solved by unselecting those calendars in my stock Calendar app on the phone (at least this works well on Sense 6 ROMs). So this problems is solved.
- I'm not really missing the ability to play music residing on the phone directly on the Gear.
- The Gear firmware can be easily and safely updated using Kies 3 software on the computer.
- I don't really understand what added value for Gear owners S Health has over Fitness for Gear.
To sum up, it looks like the current state of things is pretty good for me. I know other people have been having issues with some functionalities that do work for me, namely:
- Installation: no idea, but Sense 6 users have been consistently having success.
- Notifications: no idea, these seem to be working for most.
- Media control: again, works fine on Sense 6 ROMs regardless of the music app
- S Voice: this is a weird one, seems like it's consistently not working for Americans. Maybe it has something to do with the American firmware on the Gear? Do you guys want to flash the Aussie one (XSA) and give it a go?
Anyway, I just reinstalled my setup from scratch following the tutorial to the letter and was able to consistently get back to the working state as it was before I started these wild exercises above. I think I'll stick to this state for a while now.
---------- Post added at 11:39 PM ---------- Previous post was at 11:16 PM ----------
Looks like I forgot a couple of additional things not working:
- Voice memos seem to be sent from the Gear to the phone and then vanish. However, the do stay on the Gear, so this is good enough for me.
- Emails don't work. If you enable notifications from GMail and Exchange Mail (specific to your device), you will be able to see SOME of the email text on the phone. I'm assuming, on Samsung devices you can see the entire email? In terms of replying, maybe it integrates with S Voice? I have no idea...
- Call logs don't work. This one is probably really valuable, but it's not going to be easy to make it work.
- Fitness apps requiring GPS: you'd be probably better off with dedicated apps like Runtastic anyway...