Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bug(android): attempting to open a package from Files results in an error 'You don't have any apps that can open this type of file' #10133

Open
1 of 8 tasks
mcdurdin opened this issue Dec 5, 2023 · 10 comments
Labels
android/ bug external Requires changes to other software programs in order to resolve wontfix

Comments

@mcdurdin
Copy link
Member

mcdurdin commented Dec 5, 2023

Describe the bug

Screenshot_20231205_123603_My Files

Reproduce the bug

No response

Expected behavior

No response

Related issues

No response

Keyman apps

  • Keyman for Android
  • Keyman for iPhone and iPad
  • Keyman for Linux
  • Keyman for macOS
  • Keyman for Windows
  • Keyman Developer
  • KeymanWeb
  • Other - give details at bottom of form

Keyman version

17.0.217-alpha-test-10103

Operating system

No response

Device

No response

Target application

No response

Browser

No response

Keyboard name

No response

Keyboard version

No response

Language name

No response

Additional context

No response

@mcdurdin mcdurdin added the bug label Dec 5, 2023
@mcdurdin mcdurdin added this to the A17S28 milestone Dec 5, 2023
@darcywong00
Copy link
Contributor

Previous issue #629 about Samsung's "My Files" browser.

As a workaround, does the Chrome Downloads allow you to install the .kmp file?

@mcdurdin mcdurdin modified the milestones: A17S28, A17S29 Dec 30, 2023
@mcdurdin mcdurdin modified the milestones: A17S29, A17S30 Jan 6, 2024
@mcdurdin
Copy link
Member Author

Trying to install from Chrome Downloads, I get a toast from Keyman: "storage request permission was denied. May fail to install key..."

FWIW, any error which arises from a user action should be an alert rather than a toast.

@darcywong00
Copy link
Contributor

Triaged with @mcdurdin to B17S1

@mcdurdin
Copy link
Member Author

mcdurdin commented Feb 7, 2024

Trying to install from Chrome Downloads, I get a toast from Keyman: "storage request permission was denied. May fail to install key..."

Screencap. And a small insight into my life if you look carefully.

Screen_Recording_20240207_055457_Keyman.Alpha.mp4

@darcywong00
Copy link
Contributor

MyFiles creates the intent that Android Studio warns with

[1235/FileExecute ] openFile() ] There is no activity that can handle the intent. (type : , data : content://media/external/file/11269)

Chrome Downloads does trigger the intent with

START u0 {act=android.intent.action.VIEW dat=content://com.android.chrome.DownloadFileProvider/... typ=application/octet-stream flg=0x10000003 cmp=android/com.android.internal.app.ResolverAct

@mcdurdin mcdurdin modified the milestones: B17S2, B17S3 Mar 3, 2024
@darcywong00 darcywong00 modified the milestones: B17S3, B17S4 Mar 16, 2024
@mcdurdin mcdurdin modified the milestones: B17S4, B17S5 Mar 30, 2024
@darcywong00 darcywong00 added the external Requires changes to other software programs in order to resolve label Apr 1, 2024
@darcywong00
Copy link
Contributor

Retesting with 17.0.289 beta and I see this in the Logcat trying to launch a .kmp file from Samsung MyFiles:

com.sec.android.app.myfiles          I  [1351/FileExecute         ] 
    getOpenFileIntent() ] unsupported file type extension : kmp, mimeType : 

I'll call this a dupe of #629 which has some unpleasant caveats with the intent-filters

Per SO reference, Samsung MyFiles browser

The sad answer is that is no good solution but to use */* and no file extension filtering.

When Samsung's file manager tries opening a file whose mime type they don't recognize, they default to passing "" (an empty string), which is impossible to filter for - setting an empty mime type in the intent filter creates a malformed APK that your device will refuse to install, so the only way to catch it is by using */*.

They probably should have defaulted to application/octet-stream, but that's not going to happen anytime soon - unless you work for Samsung, in which case, go change it :)


So, the only (uber unpleasant) alternative is to have an intent filter on all filetypes so the user could select Keyman for .kmp files.

Will close as won't fix - waiting on external

@darcywong00 darcywong00 closed this as not planned Won't fix, can't repro, duplicate, stale Apr 1, 2024
@darcywong00
Copy link
Contributor

Re-opening to track for Future - still waiting on external Samsung update to MyFiles

@darcywong00 darcywong00 reopened this Apr 1, 2024
@darcywong00 darcywong00 modified the milestones: B17S5, Future Apr 1, 2024
@mcdurdin mcdurdin modified the milestones: Future, Waiting-external Apr 1, 2024
@mcdurdin
Copy link
Member Author

mcdurdin commented Apr 1, 2024

@darcywong00 darcywong00 removed their assignment Apr 22, 2024
@mcdurdin
Copy link
Member Author

mcdurdin commented Oct 7, 2024

Samsung have acknowledged that the issue is in their app but have declined to fix it. They don't consider Keyman a popular enough app to add specific support for it, and the hack that they've used for a long time is so embedded it can't really be fixed now, it seems.

I think we go ahead and close this as 'wont-fix' since it's outside our control and if necessary advise our users that they avoid the buggy My Files app, and instead browse for .kmp to install from within the Keyman app.

@mcdurdin
Copy link
Member Author

Reopening and leaving forever in 'waiting-external' state because the issue is still present, even if we can't do anything about it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
android/ bug external Requires changes to other software programs in order to resolve wontfix
Projects
Status: No status
Development

No branches or pull requests

2 participants