I have a smartphone with Companion App version 2.47 installed. I allowed it to install apps from unknown sources. (Android 8.1)
This version is able to install AI2 apps by scanning DMC directly. great!
But after update to a newer version this doesn't work anymore. The Apps are downloaded via Browser and now I have to allow Chrome to install Apps from unknown sources - don't want to do this because of higher security risks.
Is this issue already known and are you working on it?
Fortunately I still have this older version in some backup and I will continue to use it until newer versions are able to directly install apps again.
this is exactly what I DON'T want to do.
I want to give my son the possibility to develop own apps with AI but want to limit the risk install malicious apps from unknown sources. His Android has the ability to limit the unknown source installation for dedicated apps like AI companion. This is fine for me and worked before but not anymore with the latest version of companion app.
I for sure don't want to allow him to install apps directly from APK or alternative appstores as the risk is too high.
To disable the possibility of downloading apps from unknown sources, in the device Settings, uncheck the option except when installing an app your son creates. You as an owner of the device can set the option to download from unknown sources as you like. Each device has a way to set that option. On some devices, the option is hidden.
Android ® 8.x & higher
From a Home screen, swipe up or down from the center of the display to access the apps screen.
Navigate: Settings. > Apps.
Tap Menu icon (upper-right).
Tap Special access.
Tap Install unknown apps.
Select the unknown app then tap the Allow from this source switch to turn on or off .
Alternatively, publish his apps to GooglePlay and only allow him to download the apps from GooglePlay Andreas.
as I wrote in my first post I already use this configuration.
I allowed Companion App to install Apps from unknown sources. This worked fine.
But now Companion App does not install the AI apps anymore but let Chrome download and install the apps. And I don't want to allow Chrome to install unknown apps because of security risk while surfing around.
My question was not how to configure the "unknown source installation" but rather why Companion App has this bug in the version newer than 2.47
Is there anyone from the Companion App team who could check this bug?
The answer is in the link provided by Taifun Andreas... Android 8.0 Oreo andlater
Google changed how APK installations work in Android 8.0 Oreo. What you see is not a bug; it is App Inventor reacting to Google's requirements for apps on Android 8+ .
You can download the apk to your PC; upload the apk to GoogleDrive as shown here> Give an app to a friend - #5 by SteveJG or several other ways. The link Taifun posted says you don't have to use Chrome...if you download to your PC ... Android will ask you to grant permission to either the file browser or your web browser to install the app. You have a choice.
Google Chrome does not randomly install unknown apps because of security risk while surfing around. You have to have the install from unknown sources setting set. If it is not set, you won't get unwanted stuff. Set unknown apps when you download an App Inventor app and if you are uncomfortable; un set unknown apps.
obviously we don't understand each other. Perhaps my posts are not exactly enough.
Let's describe how Companion App works on MY PHONE. And then describe how it works on my SON's phone. This differs a lot and.
MY PHONE:
I have MotoG5 with Android 8.1. In Settings "APPS->Extended->Special->Unknown Sources" I see several Apps like Chrome and MIT AI Companion that have the possibility to "ask for permission to install apps from unknown sources". This is a special permission and only apps with this permission in MANIFEST are listed here. Obviously Companion want to act like this. I allowed Companion but not Chrome.
When I create a APP in AI2 web frontend I then can compile and get a data matrix code for download.
I then scan this code inside of companion app.
And from here it differs...
In MotoG5 the download is done by Companion App, the installation dialog shows and the app is installed. This is why I allowed Companion to install from unknown sources.
In the phone of my son: I scan DMC in Companion App, Chrome is showing up and downloads the App. I get a warning message that I have to allow Chrome to install unknown apps. Why does Companion not download and install the app by itself like on my phone.
When digging deeper I see that his Companion has newer version (2.60) and does not even appear in list of apps that may install from unknown sources.
His phone is Android9 with EMUI 9.1 from Huawei.
I will try to remove and reinstall Companion App on his phone, perhaps this will change the behaviour.
If not I still consider the behaviour of V2.6 as a bug compared to the behaviour of 2.47. If I really need to download the app and install it with apps different from Companion why Companion needs the right to install from unknown sources? The intended behaviour is that Companion deals with it itself (and worked in previous versions)
Greetings
Andreas
P.S.:
I updated Companion on my phone and it does not work anymore. Then I removed and installed old version again on my phone and it works like a charm again.
P.P.S.:
I uninstalled the 2.60 from my SON's phone and installed the old 2.47, ignored the warning that this version is for older android systems and gave Companion the right to install from unknown sources.
It now also works on my SON's phone. Obviously the feature to install from unknown sources is broken in the new version of Companion.
Google asked us to remove the capability to install apps directly from the companion as published through the Google Play Store. If you want this capability, install the version available from App Inventor under the Help > Companion Information dialog. The version number will end in a 'u' once installed and will be able to install apps directly without going through Chrome.
I'm not sure if this question is still open or if I understand the issue. Here is what I have been doing for years - hopefully it will shed light on the question.
I develop my apps on a Windows PC in a browser window using the AI2 development environment. I have the companion app running on an Android phone or tablet for testing/debugging. When my app is complete and ready for installation, I go to "Build | App (save .apk file to my computer)". I use the dialog that pops up to select where on my PC the .apk file is saved (the desktop will do just fine). Next, I plug a USB cable into my PC and into the Android device that I want to install the app on. Windows displays the Android device's storage as if it were an external disk drive. You can navigate through the Android device's file system using Windows explorer, just like any external USB drive.
I simply copy the file from my PC and, using the PC, paste the file somewhere in the Android device's file system. The "downloads" folder will do; however, I usually have an external SD drive plugged into my Android devices so I put the .apk file in the home directory of the SD card. Where you put the .apk file does not matter, as long as you can find it again.
I am then done with the PC and can unplug the USB cable. I use an Android file explorer to navigate to where I pasted the .apk file. Most Android installations come with a file explorer app build in, but you can download one of many free ones from the Google play store if you need to. Anyway, when the .apk file is located, simply tap on it and it will install. On some versions of Android, you will get a message about the file being untrusted and warnings against installing it. The message varies with the Android version, but there is always something that you can tap on that says "install anyway" and the app will then install.
There are other ways to transfer the .apk file from your development PC to your Android device: Google cloud storage, e-mailing it to yourself, etc. But I think that the USB transfer method is by far the simplest and fastest way to do this.