Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法提示在Android中安装apk文件_Android_File_Apk - Fatal编程技术网

无法提示在Android中安装apk文件

无法提示在Android中安装apk文件,android,file,apk,Android,File,Apk,我正在开发一个Android应用程序。在我的应用程序中,我正在MainActivity中检查最新版本的apk。若应用程序需要更新,我只需使用Reformation从服务器下载apk文件,然后提示用户安装下载的apk文件。所有的下载过程都完成了,没有任何问题。但我在提示用户时遇到了问题。我跟着 这是我在MainActivity中提示的方式 public void promptToInstallDownloadedApk(String path) { Intent inten

我正在开发一个Android应用程序。在我的应用程序中,我正在MainActivity中检查最新版本的apk。若应用程序需要更新,我只需使用Reformation从服务器下载apk文件,然后提示用户安装下载的apk文件。所有的下载过程都完成了,没有任何问题。但我在提示用户时遇到了问题。我跟着

这是我在MainActivity中提示的方式

public void promptToInstallDownloadedApk(String path)
    {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(Uri.fromFile(new File(path)), "application/com.football.waiyanhein.tonightfootballreport");
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
    }
当我运行代码时,它抛出这个错误

.354 12750-12750/com.football.waiyanhein.tonightfootball报告 E/AndroidRuntime:致命异常:主 进程:com.football.waiyanhein.tonightfootball报告,PID:12750 android.content.ActivityNotFoundException:未找到要处理的活动 Intent{act=android.Intent.action.VIEW dat=file:///storage/emulated/0/Android/data/com.football.waiyanhein.tonightfootballreport/files/tonight_football_report.apk 典型=应用程序/com.football.waiyanhein.tonightfootball报告 flg=0x10000000} 在 android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1798) 在 android.app.Instrumentation.execStartActivity(Instrumentation.java:1512) 在android.app.Activity.startActivityForResult上(Activity.java:3917) 在 android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:48) 在 android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:77) 在android.app.Activity.startActivityForResult(Activity.java:3877)上 在 android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:859) 在android.app.Activity.startActivity(Activity.java:4200)上 在android.app.Activity.startActivity(Activity.java:4168) 在 com.football.waiyanhein.tonightfootballreport.MainActivity.PrompToInstallDownloadedAppk(MainActivity.java:912) 在 com.football.waiyanhein.tonightfootballreport.MainActivity.WriteAppDownloadResponseBodyToDisk(MainActivity.java:893) 在 com.football.waiyanhein.tonightfootballreport.MainActivity$15.onResponse(MainActivity.java:850) 在 改装2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:68) 位于android.os.Handler.handleCallback(Handler.java:739) 位于android.os.Handler.dispatchMessage(Handler.java:95) 位于android.os.Looper.loop(Looper.java:148) 位于android.app.ActivityThread.main(ActivityThread.java:5417) 位于java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)05-14 04:19:18.359 679-1124/带活动管理器的系统/流程:强制 整理活动 com.football.waiyanhein.tonightfootballreport/.main活动05-14 04:19:18.387 664-664/? E/EGL_仿真:tid 664: eglCreateSyncKHR(1215):错误0x3004(EGL\U BAD\U属性)05-14 04:19:18.505 679-10967/system_进程I/OpenGLRenderer:已初始化 EGL,版本1.4

为什么我不能提示?我将“application/com.football.waiyanhein.tonightfootballreport”设置为promot。那是我的包裹名

我也试过了,但不起作用

public void promptToInstallDownloadedApk(String path)
    {
        Intent promptInstall = new Intent(Intent.ACTION_VIEW)
                .setDataAndType(Uri.parse(path),
                        "application/vnd.android.package-archive");
        startActivity(promptInstall);
    }

最后一个例子应该有效。我是这样使用它的:

File updatedApk = new File(Environment.getExternalStorageDirectory(),
                        "your_file_name");
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(updatedApk),
        "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
它应该是
“application/vnd.android.package archive”
100%使用它,并发布您收到的错误,这不应该是您的包名。
路径可能有问题吗?