开始在Android的德尔福西雅图应用程序错误

问题描述:

APK的原因有几个,我不希望使用谷歌播放机制,提升Android应用程序。所以我决定让我自己的系统下载并升级一个android应用程序。开始在Android的德尔福西雅图应用程序错误

第1步:下载更新.apk文件。

步骤2:把一个按钮,在原有的应用程序,使用户可以点击它开始.apk升级。

以下代码给我一个错误。

procedure TfrmUpdateProgram.DoUpgrade; 
    {$IF DEFINED(IOS) or DEFINED(ANDROID)} 
    var Intent : JIntent; 
    {$ELSE} 
    {$ENDIF} 
    begin 
    {$IF DEFINED(IOS) or DEFINED(ANDROID)} 
     Intent := TJIntent.Create; 
     Intent.setAction(TJIntent.JavaClass.ACTION_VIEW); 
     Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); 
     Intent.setDataAndType(StrToJURI(newAPKFile), StringToJString('application/vnd.android.package-archive')); 

     SharedActivityContext.startActivity(Intent); 
     Application.Terminate; 

    {$ELSE} 
     ShellExecute(0, PWideChar('Open'), PWideChar(newAPKFile), nil, nil, SW_HIDE); 
    {$ENDIF} 
    end; 

android.content.activitynotfoundexception:无活动处理意向{行动= android.intent.action.view DAT = /存储..... update.apk典型值=应用程序/ vnd.android .package-archive flg = 0x1000000}

有什么想法?

+0

意图是Android特有的功能,他们不会在iOS的存在,所以你将不得不使用不同的代码时'限定(IOS)'是真实的。 –

+0

相关:[在Android上以编程方式安装应用程序](http://*.com/questions/4604239/) –

尝试删除调用Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK),它并不是必需的。

确保.apk文件在启动Intent之前是世界可读的,除非将它存储到公共外部文件夹中。并确保它可通过file: URI访问。

,并确保您的Android设备被配置为允许来自未知来源安装的应用。