簡體   English   中英

以編程方式安裝android apk已禁用安裝按鈕

[英]Installing android apk programmatically has install button disabled

在我的公司,我們有2個應用程序,都通過apks安裝。 第一個應用程序是“安裝程序”,負責安裝“app”apk。

我們使用這行代碼來調用要安裝的“app”apk:

Uri apkUri = Uri.fromFile(toInstall);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(apkUri, "application/vnd.android.package-archive");
startActivityForResult(intent, RC_INSTALL);

現在,這適用於我們使用的每個設備,除了帶有android 7.1.1的三星SM-P355M(標簽A)。

當我們在Samsung Tab A上執行上面的代碼時,安裝按鈕被禁用。

安裝按鈕已禁用

但是,如果用戶按下最近的應用程序按鈕,然后返回到我們的“安裝程序”應用程序,安裝提示將返回,並啟用安裝按鈕!

安裝按鈕重新啟用

我不知道為什么會發生這種情況以及為什么它只發生在這個特定的設備上,而且很多用戶在安裝我們的應用程序時遇到問題,因為他們不知道這種解決方法。

但有趣的是,如果我通過三星文件管理器手動瀏覽並找到apk並點擊它進行安裝,則按鈕已啟用! 如果我嘗試使用APK Installer PRO安裝,也會發生同樣的事情。 但是如果我嘗試使用ES文件資源管理器,則會禁用安裝按鈕。

我在想我的代碼可能會出錯,但我不知道那是什么,因為有些應用程序可以安裝我們的apk,但其他一些人不能沒有這種手動解決方法。

我試圖尋找任何可能具有“繪制應用程序”權限,屏幕錄像機,磁通或任何類似的安裝應用程序,但沒有發現可能導致此問題的任何內容。

如果有人知道為什么該按鈕最初被禁用,但在進入最近的應用程序后重新啟用,我將不勝感激。

經過一周的嘗試,我設法解決了這個問題,但忘了在這里發布。

為了將來的參考和幫助任何可能像我一樣處理這個錯誤的人,我會留下我在這里所做的。

我發現任何針對低於23的api級別的應用程序都會遇到此問題。 這是因為,我認為,在api 23之前,用戶必須在安裝過程中接受所有應用程序權限,並且在api 23之后,應用程序只有在需要時才能請求權限。 我檢查了我們的應用程序,並確認他們的目標是一個非常古老的api級別,所以我所要做的就是至少定位api級別23並使用新的“請求應用程序權限”來請求用戶權限。 這樣做之后,安裝按鈕工作得很好。

我希望這可以幫助任何有這個奇怪問題的人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM