Touch control not changing for REMOTECONTROL in Google Home - touch

I'm using the touch control device type REMOTECONTROL for Google's Smart Home Device. In google Home the touch device gui only displays the "ONOFF" button at the center of the screen. Need help in identifying possible errors I have made. Here is the code fragment of the OnSync reply:
agentUserId: USER_ID,
"devices": [
{
"id": "123",
"type": "action.devices.types.REMOTECONTROL",
"traits": [
"action.devices.traits.AppSelector",
"action.devices.traits.InputSelector",
"action.devices.traits.MediaState",
"action.devices.traits.OnOff",
"action.devices.traits.TransportControl",
"action.devices.traits.Channel",
"action.devices.traits.Volume"
],
"name": { .....
Here are some of the facts:
All the traits are working that I've tried,
The one touch control showing, the onoff button, on the control does work,
The project started using the "LAMP" control to test,
Tried other touch devices, just to see if the GUI changed...it didn't,
name can change as well as other fields and they all seem to be recognized,
Utterances seems to work fine, at least on the Google mini,
This touch control is supposed to be supported according to the https://developers.google.com/assistant/smarthome/guides page (so please don't send me there),
Tried syncing several times by unlinking control on the phone and relinking,
Tried to find the rev number of the "Home" app but couldn't find it.
Any suggestions would be appreciated.

You're only seeing the OnOff touch controls because that is currently the only trait in your list supported for the Home app.
If you test your Action on a smart display, you should see the touch controls for Volume and Channel, as those are supported.
The traits should all function as expected with vocal commands.

Related

Flutter Firebase DebugView not sending events

Initially the person before me set up a screen observer so that whenever the page changes, setCurrentScreen is triggered to send a event and log the screen. Because we use a bunch of open containers to animate page opening, the screen observer doesnt get triggered. So I went through the app and added some setCurrentScreen for those that the screenObserver missed, and while there I also added some logEvents to see if people are using specific parts of the app.
The way I set enabled debug view was in xcode, going to Product -> Scheme -> Edit Scheme and adding -FIRAnalyticsDebugEnabled and -FIRDebugEnabled Edit scheme
After ticking both of the above (or just one or the other), only these events are being triggered then the app stops sending events. Completely. What am I missing? output
I cannot find another issue about this. I am using the same package name in the app and firebase, otherwise I would have no output. All other issues are talking about no output at all. I have tried to do this on simulator and on actual iPhone and they both yield the same result. I have also set up a android emulator and have an actual phone. Tried it on both and same result. The above screenshot is from iPhone as I am on Mac and more comfortable working on a iPhone.
i have set IS_ANALYTICS_ENABLED to true in the .plist file and this did not work

How do I prevent my app from running in the "recent menu" on Android 12

Android 12 introduced the behavior where the last app you had active are continuing to run when inside the recent menu. I'm wondering if there's a flag or something to put in AndroidManifest file to prevent this behavior as it's conflicting with some logics in our app (which works fine for Android < 12). I've googled but it's hard to find unless you know exactly what this "feature" is called.
Steps:
Start app
Open recent menu
Observe that you can interact and that the app is still running as if you had it open/active
Why is this a problem? Because a user is now able to force quit the app (swiping it away) without entering the "paused" state in our game (using Unity) meaning some save logic won't run.
This can be worked around in one way or another, but for now I would like to just pause the app in recent menu if possible (our app has zero reason for being active in recent menu).
EDIT:
As #WyattL mentioned in his answer, android:excludeFromRecents="true" might work, but it will cause drop in playtime and retention of the game and would prefer to have a more proper solution to this "unnecessary" feature of Android 12.
I can't be sure without testing on every phone as it seems the issue varies by device (thanks Ruzihm), but if opening the Recent Apps screen generates an OnApplicationFocus() call, this would provide a solution.
In an active MonoBehaviour:
private void OnApplicationFocus( bool focus )
{
if( focus ) {
UnpauseLogic();
}
else {
PauseLogic();
SaveLogic();
}
}
(It might also be worth trying OnApplicationQuit() in case it's called on specific devices during a swipe termination, but in my own tests it was never called.)
According to some brief research, did you try adding
<activity>
...
android:excludeFromRecents="true"
android:label=""
...
</activity>
to the AndroidManifest.xml?

Actions on Google - configure Simulator to display my test app

My test app is displayed only on the 'display' tab and not on the conversation menu on the left.
Expected:
Actual:
How can it be fixed?
A short term fix, until the bug in the simulator is resolved, is to change your surface. You can switch to speaker if you want to hear the response. Note that you can only swap surfaces when you are not in an active conversation, if you are in one, just click cancel, and then switch surfaces. If you do switch to speaker you will not see the display anymore, but it will say the question you are seeking. Please don't be discouraged, this was not a bug in your code, it is in the simulator.
it is only the first TTS (i.e Welcome! ... ) that you may not hear back the audio file. It is a bug and they are working to fix it. But as long as you see "Welcome!..." in the display card now, your action is working

cordova-plugin-smooch issues with iOS/Android app built using creator.ionic.io

Am using http://creator.ionic.io to create a hybrid iOS/Android app.
Have added cordova-plugin-smooch as a plugin in Code Settings.
Have added ionic-native.min.js.
Have added smoochio.js with following code...
Smooch.init({
"appToken": "MY-TOKEN",
"soundNotificationEnabled": "true",
"imageUploadEnabled": "true",
});
The smooch.io button appears in the app but I think it's not 'native' because when user tries to type in message field, the iOS keyboard goes on top of the message input field so user can't see what they are typing. Also, in the smooch.io message window header, the 'X' or close icon doesn't show up...
Not sure what I'm missing to activate the 'native' plugin so it functions correctly on the phone. Thanks for any help.

Facebook chat hides Flash apps when open

While running a Flash app, if I open a new or existing Facebook chat window, my Flash content disappears. I can continue to hear music playing from the app and when I close/minimize the Facebook chat window, my Flash content reappears. Is this a known issue?
This is happening in Google Chrome 15 and Internet Explorer 9 on Windows 7 with Flash Player 11.
I checked this on my own Flash app as well as on another Flash app made by someone else and the same behaviour is occurring. It does not however hide non-Flash content.
It seems to be a bug with Facebook chat and Flash content.
from http://developers.facebook.com/docs/appsonfacebook/tutorial/:
If you are hosting an Adobe Flash application within Canvas, it is recommended that you set the wmode of the Flash object to "opaque":
...
Other modes (including the default mode, wmode="window", wmode="direct", and wmode="gpu") require us to hide your flash object when dialogs, popups, chat tabs, and ticker flyouts occur. This can be unpleasant or confusing for users.
From the documentation:
If you must use wmode values of window or direct, Canvas will automatically hide and display the Flash object when Dialogs, Ticket flyouts, Chat Tabs and Notifications display.
Developers who wish to provide a custom hide and display experience may pass a JavaScript function in the hideFlashCallback option for FB.init. This function will be executed whenever the Flash object is hidden or displayed due to user behavior (clicking on a Notification, etc.) and can be used by a developer to take the appropriate actions: hiding or displaying their Flash object.
FB.init({
...,
hideFlashCallback: function(params) {
if (params.state == 'opened') {
$('#some-image').show();
FB.Canvas.hideFlashElement(params.elem);
} else {
$('#some-image').hide();
FB.Canvas.showFlashElement(params.elem);
}
});