[Ovmsdev] Android App beta
Chris van der Meijden
chris at arachnon.de
Sun Oct 9 23:09:08 HKT 2022
I tested the new build. Everything is working fine for me.
I think it is a good idea to restrict the respond to only
action.COMMAND and leave SendCommand for background operation.
Am Sonntag, dem 09.10.2022 um 16:05 +0200 schrieb Michael Balzer:
> Chris, Michael,
>
> new builds with the announced new security scheme:
> * https://dexters-web.de/f/tw-beta/OpenVehicleApp-22100901-release.apk
> * https://dexters-web.de/f/tw-beta/OpenVehicleApp-22100901-debug.apk
> This adds a new API key authorization to both Intent interfaces. The
> API key is automatically generated on App launch, and can be viewed,
> copied and regenerated from the general options page.
> It can be used for both command intents by passing in as extra
> "apikey", allowing to omit the vehicle password. The vehicle id is
> now also optional on both interfaces, if omitted the current vehicle
> will be used. To change the car you can either pass the vehicle
> password or the apikey along with the vehicle id.
> So with am, you can now use:
> * am broadcast -a com.openvehicles.OVMS.SendCommand -e apikey … -e
> command "stat"
> * am start -a com.openvehicles.OVMS.action.COMMAND -e apikey … -e
> command "stat"
> The second guarantees the activity is started, so the response will
> be visible.
> I'll probably restrict displaying the response to action.COMMAND in
> the next build, so SendCommand will be for background operations
> while action.COMMAND is for interactive uses.
> Android 10 (API 29) has a new limitation for displaying results
> (starting UI activities) from a service
> (https://developer.android.com/guide/components/activities/background-starts
> ), so that works only by chance now anyway.
>
> Regards,
> Michael
>
>
> Am 09.10.22 um 12:45 schrieb Chris van der Meijden:
>
> Hi Michael,
>
> thank you for your response. As always of great help :-)
>
> Good that you could find a possible security risc concerning the
> credentials.
>
> Regards
>
> Chris
>
>
> Am Sonntag, dem 09.10.2022 um 10:53 +0200 schrieb Michael Balzer:
>
> > Chris,
> >
> > AFAIK you need to have an adb connection or a rooted Android to use
> > "am", so not suitable as a general way to call OVMS commands.
> >
> > With your (rooted) Lineageos you should be able to use it like
> > this:
> >
> > am broadcast -a com.openvehicles.OVMS.SendCommand -e sel_vehicleid
> > xxx -e sel_server_password xxx -e msg_command "7,stat"
> >
> > And I missed mentioning I also added support for user command
> > syntax to "SendCommand", so you can now alternatively do
> >
> > am broadcast -a com.openvehicles.OVMS.SendCommand -e sel_vehicleid
> > xxx -e sel_server_password xxx -e command "stat"
> >
> > Playing with am, I found out…
> >
> > am start -n com.openvehicles.OVMS/.api.CommandActivity -a
> > com.openvehicles.OVMS.action.COMMAND -e command "stat"
> >
> > …actually works to trigger the new command receiver. I thought
> > restricting the new receiver to app-internal intents would be
> > possible, but it apparently isn't. That bothers me, it means any
> > App could issue a command without knowing the credentials or an
> > auth key and without a previous explicit user interaction to allow
> > this.
> >
> > So I need to add a credentials check to the new action, which means
> > you will need to reinstall all bookmarks / shortcut assignments.
> > Please wait with complex setups until I've added that.
> >
> > Regards,
> > Michael
> >
> >
> >
> > Am 08.10.22 um 19:30 schrieb Chris van der Meijden:
> >
> > I have been playing with the "SH" function of KWGT and tried to
> > send a broadcast over the shell, like adb:
> >
> > 'am broadcast -a com.whereismywifeserver.intent.TEST --es sms_body
> > "test from adb"'
> >
> > That did not work, there where "rights" issues.
> >
> > I took a look at the commands documentation. I will play a bit with
> > that.
> >
> > Thanx for explaining!
> >
> >
> > Am Samstag, dem 08.10.2022 um 18:54 +0200 schrieb Michael Balzer:
> >
> >
> > > Chris,
> > >
> > > "com.openvehicles.OVMS.SendCommand" is the old command action,
> > > it's still supported and should work the same way as before,
> > > except there are some new extras in the response intent.
> > >
> > > The "SendCommand" interface is raw MP function level, that's why
> > > you need to prefix "7," for text commands (7 = execute text
> > > command). Other MP commands work just the same way as raw
> > > commands, e.g. "20,<pin>" will lock the car if supported.
> > > (https://docs.openvehicles.com/en/latest/protocol_v2/commands.html
> > > )
> > >
> > > The newly added command intent action is
> > > "com.openvehicles.OVMS.action.COMMAND", it just takes one extra
> > > "command", which takes the command just as entered in the
> > > notification page. See help there for the syntax, text commands
> > > can be given as in the shell, to send the above MP lock command,
> > > you'd enter "#20,<pin>". This action currently always sends the
> > > command to the currently selected vehicle.
> > >
> > > KWGT doesn't support sending intents, that's why I've done all
> > > this.
> > >
> > > To call a stored command from KWGT, set a suitable element's
> > > touch handler to "start shortcut". After clicking on that action,
> > > you can open a selector. It will show the list of shortcut
> > > providers installed including the OVMS App now. Click on the OVMS
> > > entry, then select the command from the list of stored commands.
> > >
> > > Regards,
> > > Michael
> > >
> > >
> > > Am 08.10.22 um 17:54 schrieb Chris van der Meijden:
> > >
> > > Hi Michael
> > >
> > > I just installed the release apk on my degoogled Lineageos 19.1.
> > >
> > > Installation went without any troubles. I tested the broadcast
> > > with my fireplace app via webinent:
> > >
> > > action: 'com.openvehicles.OVMS.SendCommand',
> > > extras: {
> > > sel_vehicleid: vid,
> > > sel_server_password: pwd,
> > > msg_command: '7,climatecontrol on'
> > > }
> > >
> > > It works still fine and I can see the response dialog in the OVMS
> > > app.
> > >
> > > I don't understand the "MP function". Do you have an example for
> > > for i.e. "climatecontrol on" via Buttons in KWGT? I'd love to
> > > test that :-)
> > >
> > > And do you know if there is a way to send intent broadcasts with
> > > KWGT? I tried with a "GLOBALE", but I could not get that to work.
> > >
> > > Regards
> > >
> > > Chris
> > >
> > >
> > > Am Samstag, dem 08.10.2022 um 15:37 +0200 schrieb Michael Balzer:
> > >
> > >
> > >
> > > > New test build:
> > > > * https://dexters-web.de/f/tw-beta/OpenVehicleApp-22100801-release.apk
> > > > * https://dexters-web.de/f/tw-beta/OpenVehicleApp-22100801-debug.apk
> > > >
> > > > This includes major extensions & code rewrites, I think I'll
> > > > bump the version to 4.0 when releasing this to Google Play.
> > > >
> > > > Main goal & outcome of this effort: command bookmarks.
> > > >
> > > > The App now offers stored commands (see notifications tab).
> > > > Stored commands can be pinned to the launcher and selected from
> > > > third party Apps like KWGT as shortcuts to execute on triggers
> > > > / actions.
> > > >
> > > > So this enabled custom widgets to include buttons triggering
> > > > car commands.
> > > >
> > > > Commands are given using the user syntax, i.e. don't need the
> > > > MP function prefix. You can still call an MP function by using
> > > > the user syntax, i.e. "#…".
> > > >
> > > > Command responses are shown as a dialog with a timeoout of 5
> > > > seconds unless you hold it by touching or begin scrolling a
> > > > long response. If the App is paused it will be resumed and
> > > > switch to the notifications page (which keeps a record of all
> > > > commands & responses). If the App isn't running, only the
> > > > response dialog is shown on the launcher.
> > > >
> > > > All this of course needs the service to be enabled & allow
> > > > commands to be sent.
> > > >
> > > > Command responses are also broadcasted now, so KWGT et al can
> > > > receive them -- but they will currently need to know the
> > > > command sent previously and copy command responses if they need
> > > > to keep them, I don't know if KWGT can do that (Automagic can).
> > > > KWGT seems to only have a simple variable storage model.
> > > >
> > > > I think about extending the ApiService to keep a command queue
> > > > so the broadcast can at least carry the command, the response
> > > > is supposedly produced for. Unfortunately the MP API cannot
> > > > guarantee this, as it doesn't currently return a copy of the
> > > > original command or a command ID reference with the response,
> > > > so this would at best be a guess. Not sure if users actually
> > > > need this.
> > > >
> > > >
> > > > Note: I haven't pushed the code changes to github yet, I'd
> > > > first like to get some test feedback. I've tested this on
> > > > Android 6, 7, 11 & 13, but not on any degoogled Androids.
> > > >
> > > > Regards,
> > > > Michael
> > > >
> > > >
> > > > Am 26.09.22 um 17:26 schrieb Chris van der Meijden:
> > > >
> > > > For an includable example it would be nice if we could send the
> > > > vehicle image from the OVMS app to KWGT.
> > > >
> > > > You can assign "Activities" to the "Touch" event on an image.
> > > > Would be cool if that works, so we can start the remote climate
> > > > control similar to how I do that with my OVMS-Fireplace app:
> > > >
> > > > https://github.com/devmarxx/OVMS-Fireplace
> > > >
> > > >
> > > > Am Montag, dem 26.09.2022 um 13:56 +0200 schrieb Michael
> > > > Balzer:
> > > >
> > > >
> > > >
> > > >
> > > > > Nice, please go ahead if you want to create an includable
> > > > > example widget :-)
> > > > >
> > > > > I've found out you can also use progress bars to display
> > > > > values, enable formula input on the "step" & set the formular
> > > > > to e.g. $br(ovms, car_soc)$.
> > > > >
> > > > > Works, although I need to convert all car model values to
> > > > > strings for KWGT. Btw, I also need to unroll the TPMS arrays,
> > > > > they are split into a "_cnt" & "_<n>" variables. I need to
> > > > > add an info on this to the wiki.
> > > > >
> > > > > I haven't found out how to send a broadcast from KWGT yet, is
> > > > > that possible? That would enable creating command shortcuts &
> > > > > buttons as with Automagic.
> > > > >
> > > > > Regards,
> > > > > Michael
> > > > >
> > > > >
> > > > >
> > > > > Am 26.09.22 um 12:13 schrieb Chris van der Meijden:
> > > > >
> > > > > Correction:
> > > > >
> > > > > $br(ovms, sel_vehicle_label)$
> > > > >
> > > > > Am Montag, dem 26.09.2022 um 12:05 +0200 schrieb Chris van
> > > > > der Meijden:
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > > I like the new KWGT Widget feature:
> > > > > >
> > > > > >
> > > > > > Above is the Tesla Widget of our Model 3, beneath that my
> > > > > > OVMS KWGT widget of our VW e-UP.
> > > > > >
> > > > > > I had to allow "Passing data to other apps". The syntax for
> > > > > > getting the intent variables to text in KWGT is i.e.
> > > > > >
> > > > > > $br(ovms, car_sel_vehicle_label)$
> > > > > >
> > > > > > Other variables can be found here:
> > > > > > https://github.com/openvehicles/Open-Vehicle-Android/wiki/Update-Broadcast-Intent-data
> > > > > >
> > > > > > The image is local on the filesystem of the phone and does
> > > > > > not come by intent.
> > > > > >
> > > > > >
> > > > > > Am Sonntag, dem 25.09.2022 um 16:23 +0200 schrieb Michael
> > > > > > Balzer:
> > > > > > No, icon can only be 0 from the else branch, in that case
> > > > > > it shall fall back to the default image.
> > > > > >
> > > > > > But I've meanwhile found (I think) your maps/track crash,
> > > > > > commit is already in the hub. The checkbox handler didn't
> > > > > > check if the map object is initialized.
> > > > > >
> > > > > > https://github.com/openvehicles/Open-Vehicle-Android/blob/master/OpenVehicleApp/src/main/java/com/openvehicles/OVMS/ui/FragMap.java#L319
> > > > > >
> > > > > > Regards,
> > > > > > Michael
> > > > > >
> > > > > >
> > > > > > Am 25.09.22 um 15:46 schrieb Chris van der Meijden:
> > > > > >
> > > > > > Just guessing, but does
> > > > > >
> > > > > > int icon;
> > > > > >
> > > > > > in MyGcmListenerService.java at line 132
> > > > > >
> > > > > > not need to be initialized like
> > > > > >
> > > > > > int icon = 0;
> > > > > >
> > > > > > now you use
> > > > > >
> > > > > > .setSmallIcon((icon != 0) ? icon :
> > > > > > R.drawable.map_car_default)
> > > > > >
> > > > > > at line 150 now?
> > > > > >
> > > > > > As the images and the Google stuff are related to that
> > > > > > integer it made me thinking ...
> > > > > >
> > > > > >
> > > > > > Am Sonntag, dem 25.09.2022 um 11:52 +0200 schrieb Michael
> > > > > > Balzer:
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > > Chris,
> > > > > > >
> > > > > > > that's not a crash log, that's just a warning.
> > > > > > >
> > > > > > > On that warning: the App requests
> > > > > > > android.permission.ACCESS_FINE_LOCATION by it's manifest.
> > > > > > > Maybe with LineageOS you need to manually give it that
> > > > > > > permission?
> > > > > > >
> > > > > > > A crash log has class "E" (error) and includes an
> > > > > > > exception and a backtrace, for an example see:
> > > > > > > https://issuetracker.google.com/issues/201308676#comment4
> > > > > > >
> > > > > > > On the crash: maybe it's because you don't have the
> > > > > > > Google components, not sure if FragMap can handle that.
> > > > > > >
> > > > > > > The forum post relates to /e/OS … maybe I need some
> > > > > > > emulator images running alternative Androids now…
> > > > > > >
> > > > > > > Regards,
> > > > > > > Michael
> > > > > > >
> > > > > > >
> > > > > > > Am 25.09.22 um 11:40 schrieb Chris van der Meijden:
> > > > > > >
> > > > > > > Hey Michael,
> > > > > > >
> > > > > > > this is from logcat when I change "Track vehicle" and the
> > > > > > > app crashes:
> > > > > > >
> > > > > > > 09-25 11:16:01.410 1710 1839 W BroadcastQueue: Permission
> > > > > > > Denial: receiving Intent {
> > > > > > > act=android.intent.action.SERVICE_STATE flg=0x1000010
> > > > > > > (has extras) } to ProcessRecord{8dcdd54
> > > > > > > 2053:com.android.systemui/u0a148} (pid=2053, uid=10148)
> > > > > > > requires android.permission.ACCESS_FINE_LOCATION due to
> > > > > > > sender android (uid 1001)
> > > > > > >
> > > > > > > I saw now, that this crash also happens in the production
> > > > > > > app.
> > > > > > >
> > > > > > > The widget is running well. I will keep the app running
> > > > > > > for while and will see if it stays stable.
> > > > > > >
> > > > > > > Regards
> > > > > > >
> > > > > > > Chris
> > > > > > >
> > > > > > > Am Samstag, dem 24.09.2022 um 23:02 +0200 schrieb Michael
> > > > > > > Balzer:
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > > Chris,
> > > > > > > >
> > > > > > > > thanks for testing. A crash log would help on any
> > > > > > > > crashes you see. Btw, I don't bump the revision until
> > > > > > > > the actual release build.
> > > > > > > >
> > > > > > > > Crashes related to the car image don't occur
> > > > > > > > immediately, it sometimes takes hours of use before it
> > > > > > > > happens. When it does, clearing the App cache fixes the
> > > > > > > > crash for another random period.
> > > > > > > >
> > > > > > > > Speed optimization was one goal. What about the widget?
> > > > > > > >
> > > > > > > > Thanks,
> > > > > > > > Michael
> > > > > > > >
> > > > > > > >
> > > > > > > > Am 24.09.22 um 22:43 schrieb Chris van der Meijden:
> > > > > > > >
> > > > > > > > Hey Michael,
> > > > > > > >
> > > > > > > > I just installed the "release" Version on LineageOS
> > > > > > > > 19.1 (Android 12) without Google components.
> > > > > > > >
> > > > > > > > The vehicle setup was without any troubles. I could
> > > > > > > > select the yellow VW e-UP image without crashing.
> > > > > > > >
> > > > > > > > The App version is set wrong under "Vehicle info"
> > > > > > > > (3.19.1, 2021122401).
> > > > > > > >
> > > > > > > > Everything seems to be faster than before.
> > > > > > > >
> > > > > > > > When I change the checkbox on "Track vehicle" under
> > > > > > > > "Position" the App crashes. But after a new start of
> > > > > > > > the app the value of the checkbox has changed.
> > > > > > > >
> > > > > > > > Perhaps this first impression is of some help.
> > > > > > > >
> > > > > > > > Regards
> > > > > > > >
> > > > > > > > Chris
> > > > > > > >
> > > > > > > > Am Samstag, dem 24.09.2022 um 20:10 +0200 schrieb
> > > > > > > > Michael Balzer:
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > > Everyone,
> > > > > > > > >
> > > > > > > > > I'm currently working on the next Android release
> > > > > > > > > including KustomWidget support and a native app
> > > > > > > > > widget based on the old Automagic gauge widget.
> > > > > > > > >
> > > > > > > > > Automagic has been dead for some time now, and it
> > > > > > > > > keeps crashing on Androids >= 7.
> > > > > > > > >
> > > > > > > > > My changes so far are in the hub, APK builds are
> > > > > > > > > available here:
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > * https://dexters-web.de/f/tw-beta/OpenVehicleApp-22092401-release.apk
> > > > > > > > > * debug build for extended logging: https://dexters-web.de/f/tw-
> > > > > > > > > beta/OpenVehicleApp-22092401-debug.apk
> > > > > > > > >
> > > > > > > > > There's an issue with the App related to Android >=
> > > > > > > > > 10 though, which I haven't found yet. It's been
> > > > > > > > > reported in the forum:
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > * https://www.openvehicles.com/node/3410
> > > > > > > > > I could use some help with that, I've got no idea
> > > > > > > > > other than blaming Android.
> > > > > > > > > I've seen the effect in my emulator tests, and it
> > > > > > > > > seems to occur more frequently with non-roadster
> > > > > > > > > images.
> > > > > > > > >
> > > > > > > > > Regards,
> > > > > > > > > Michael
> > > > > > > > >
> > > > > > > > > _______________________________________________
> > > > > > > > > OvmsDev mailing list
> > > > > > > > > OvmsDev at lists.openvehicles.com
> > > > > > > > > http://lists.openvehicles.com/mailman/listinfo/ovmsdev
> > > > > > > >
> > > > > > > >
> > > > > > > > _______________________________________________
> > > > > > > > OvmsDev mailing list
> > > > > > > > OvmsDev at lists.openvehicles.com
> > > > > > > > http://lists.openvehicles.com/mailman/listinfo/ovmsdev
> > > > > > > >
> > > > > > > > _______________________________________________
> > > > > > > > OvmsDev mailing list
> > > > > > > > OvmsDev at lists.openvehicles.com
> > > > > > > > http://lists.openvehicles.com/mailman/listinfo/ovmsdev
> > > > > > >
> > > > > > >
> > > > > > > _______________________________________________
> > > > > > > OvmsDev mailing list
> > > > > > > OvmsDev at lists.openvehicles.com
> > > > > > > http://lists.openvehicles.com/mailman/listinfo/ovmsdev
> > > > > > >
> > > > > > > _______________________________________________
> > > > > > > OvmsDev mailing list
> > > > > > > OvmsDev at lists.openvehicles.com
> > > > > > > http://lists.openvehicles.com/mailman/listinfo/ovmsdev
> > > > > >
> > > > > >
> > > > > > _______________________________________________
> > > > > > OvmsDev mailing list
> > > > > > OvmsDev at lists.openvehicles.com
> > > > > > http://lists.openvehicles.com/mailman/listinfo/ovmsdev
> > > > > >
> > > > > > _______________________________________________
> > > > > > OvmsDev mailing list
> > > > > > OvmsDev at lists.openvehicles.com
> > > > > > http://lists.openvehicles.com/mailman/listinfo/ovmsdev
> > > > > >
> > > > > > _______________________________________________
> > > > > > OvmsDev mailing list
> > > > > > OvmsDev at lists.openvehicles.com
> > > > > > http://lists.openvehicles.com/mailman/listinfo/ovmsdev
> > > > >
> > > > >
> > > > > _______________________________________________
> > > > > OvmsDev mailing list
> > > > > OvmsDev at lists.openvehicles.com
> > > > > http://lists.openvehicles.com/mailman/listinfo/ovmsdev
> > > > >
> > > > > _______________________________________________
> > > > > OvmsDev mailing list
> > > > > OvmsDev at lists.openvehicles.com
> > > > > http://lists.openvehicles.com/mailman/listinfo/ovmsdev
> > > >
> > > >
> > > > _______________________________________________
> > > > OvmsDev mailing list
> > > > OvmsDev at lists.openvehicles.com
> > > > http://lists.openvehicles.com/mailman/listinfo/ovmsdev
> > > >
> > > > _______________________________________________
> > > > OvmsDev mailing list
> > > > OvmsDev at lists.openvehicles.com
> > > > http://lists.openvehicles.com/mailman/listinfo/ovmsdev
> > >
> > >
> > > _______________________________________________
> > > OvmsDev mailing list
> > > OvmsDev at lists.openvehicles.com
> > > http://lists.openvehicles.com/mailman/listinfo/ovmsdev
> > >
> > > _______________________________________________
> > > OvmsDev mailing list
> > > OvmsDev at lists.openvehicles.com
> > > http://lists.openvehicles.com/mailman/listinfo/ovmsdev
> >
> >
> > _______________________________________________
> > OvmsDev mailing list
> > OvmsDev at lists.openvehicles.com
> > http://lists.openvehicles.com/mailman/listinfo/ovmsdev
> >
> > _______________________________________________
> > OvmsDev mailing list
> > OvmsDev at lists.openvehicles.com
> > http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>
>
> _______________________________________________
> OvmsDev mailing list
> OvmsDev at lists.openvehicles.com
> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
>
> _______________________________________________
> OvmsDev mailing list
> OvmsDev at lists.openvehicles.com
> http://lists.openvehicles.com/mailman/listinfo/ovmsdev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20221009/e04b574e/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: kustomwidget-eup.png
Type: image/png
Size: 151962 bytes
Desc: not available
URL: <http://lists.openvehicles.com/pipermail/ovmsdev/attachments/20221009/e04b574e/attachment-0001.png>
More information about the OvmsDev
mailing list