簡體   English   中英

在 chrome 下載列表中打開 apk 未打開 apk 安裝程序

[英]opening apk in chrome download list not open the apk Installer

我有一個 QtQuick2 應用程序。我為 android 使用 Qt 5.15.1 的發布配置構建它(帶簽名),

當我用 chrome 下載 Apk 並在 chrome 上的下載列表上單擊它時,它應該用安裝程序打開,但它會用文件資源管理器打開我的許多用戶說它會用 UnZip 應用程序打開。我沒有這個問題使用 Qt 5.12,自從我安裝 Qt 5.15 后就發現了這個問題。

當我在文件資源管理器(在 Android 上)上單擊此文件時,沒有問題,它將使用 Apk 安裝程序打開。我該如何解決這個問題?

apk鏈接在這里:

http://rokhshid.jooyabash.ir/files/rokhshid-3.apk

在此處輸入圖像描述

和另一個圖像

在此處輸入圖像描述

I think there is a bug on Qt 5.13(and later version) or Qt Creator.I now tested with Qt 5.15.1 and Qt Creator 4.13.2

AndroidManifest.xml 文件:

<?xml version="1.0"?>
<manifest package="org.companyname.myapp" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.5.14" android:versionCode="3" android:installLocation="auto">
<!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application.
         Remove the comment if you do not require these default permissions. -->
    <!-- %%INSERT_PERMISSIONS -->

    <!-- The following comment will be replaced upon deployment with default features based on the dependencies of the application.
         Remove the comment if you do not require these default features. -->
    <!-- %%INSERT_FEATURES -->

    <supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/>

    <application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="rokhshid" android:icon="@drawable/icon" android:extractNativeLibs="true">
        <activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" android:name="org.qtproject.qt5.android.bindings.QtActivity" android:label="رخشید" android:screenOrientation="unspecified" android:launchMode="singleTop" android:theme="@style/AppTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
            <!-- Application arguments -->
            <!-- meta-data android:name="android.app.arguments" android:value="arg1 arg2 arg3"/ -->
            <!-- Application arguments -->
            <meta-data android:name="android.app.lib_name" android:value="Rokhshid2"/>
            <meta-data android:name="android.app.qt_sources_resource_id" android:resource="@array/qt_sources"/>
            <meta-data android:name="android.app.repository" android:value="default"/>
            <meta-data android:name="android.app.qt_libs_resource_id" android:resource="@array/qt_libs"/>
            <meta-data android:name="android.app.bundled_libs_resource_id" android:resource="@array/bundled_libs"/>
            <!-- Deploy Qt libs as part of package -->
            <meta-data android:name="android.app.bundle_local_qt_libs" android:value="-- %%BUNDLE_LOCAL_QT_LIBS%% --"/>
            <!-- Run with local libs -->
            <meta-data android:name="android.app.use_local_qt_libs" android:value="-- %%USE_LOCAL_QT_LIBS%% --"/>
            <meta-data android:name="android.app.libs_prefix" android:value="/data/local/tmp/qt/"/>
            <meta-data android:name="android.app.load_local_libs_resource_id" android:resource="@array/load_local_libs"/>
            <meta-data android:name="android.app.load_local_jars" android:value="-- %%INSERT_LOCAL_JARS%% --"/>
            <meta-data android:name="android.app.static_init_classes" android:value="-- %%INSERT_INIT_CLASSES%% --"/>
            <!-- Used to specify custom system library path to run with local system libs -->
            <!-- <meta-data android:name="android.app.system_libs_prefix" android:value="/system/lib/"/> -->
            <!--  Messages maps -->
            <meta-data android:value="@string/ministro_not_found_msg" android:name="android.app.ministro_not_found_msg"/>
            <meta-data android:value="@string/ministro_needed_msg" android:name="android.app.ministro_needed_msg"/>
            <meta-data android:value="@string/fatal_error_msg" android:name="android.app.fatal_error_msg"/>
            <meta-data android:value="@string/unsupported_android_version" android:name="android.app.unsupported_android_version"/>
            <!--  Messages maps -->
            <!-- Splash screen -->
            <!-- Splash screen -->
            <!-- Background running -->
            <!-- Warning: changing this value to true may cause unexpected crashes if the
                          application still try to draw after
                          "applicationStateChanged(Qt::ApplicationSuspended)"
                          signal is sent! -->
            <meta-data android:name="android.app.background_running" android:value="false"/>
            <!-- Background running -->
            <!-- auto screen scale factor -->
            <meta-data android:name="android.app.auto_screen_scale_factor" android:value="false"/>
            <!-- auto screen scale factor -->
            <!-- extract android style -->
            <!-- available android:values :
                * default - In most cases this will be the same as "full", but it can also be something else if needed, e.g., for compatibility reasons
                * full - useful QWidget & Quick Controls 1 apps
                * minimal - useful for Quick Controls 2 apps, it is much faster than "full"
                * none - useful for apps that don't use any of the above Qt modules
                -->
            <meta-data android:name="android.app.extract_android_style" android:value="default"/>
            <!-- extract android style -->
            <meta-data android:name="android.app.splash_screen_sticky" android:value="true"/>
            <meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/splash2"/>
        </activity>
        <!-- For adding service(s) please check: https://wiki.qt.io/AndroidServices -->
    </application>

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.DELETE_PACKAGES"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

    <uses-permission android:name="android.permission.INTERNET"/>
</manifest>

我通過創建 apk 到 application/vnd.android.package-archive 的 MIME-TYPE 映射解決了我的問題。 這取決於您的 web 服務器。 例如,在 IIS 中,請按照以下步驟操作。

在此處輸入圖像描述

我在 StartUp class 的配置方法中添加了以下設置


        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            var provider = new FileExtensionContentTypeProvider();
            // Add new mappings`enter code here`
            provider.Mappings[".zip"] = "application/zip,application/octet-stream,application/x-zip-compressed,multipart/x-zip";
            provider.Mappings[".apk"] = "application/vnd.android.package-archive";
            //provider.Mappings[".apk"] = "application/zip,application/java-archive";
            app.UseStaticFiles(new StaticFileOptions()
            {
                FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "Files")),
                RequestPath = "/Files",
                ContentTypeProvider = provider
            });
    }        

確保您已在設備上啟用開發者選項。

另請在此處查看:設置 -> 應用程序和通知 -> 高級 -> 特殊應用程序訪問 -> 安裝未知應用程序。

暫無
暫無

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

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