开始在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}
有什么想法?
答
尝试删除调用Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK)
,它并不是必需的。
确保.apk
文件在启动Intent
之前是世界可读的,除非将它存储到公共外部文件夹中。并确保它可通过file:
URI访问。
,并确保您的Android设备被配置为允许来自未知来源安装的应用。
意图是Android特有的功能,他们不会在iOS的存在,所以你将不得不使用不同的代码时'限定(IOS)'是真实的。 –
相关:[在Android上以编程方式安装应用程序](http://*.com/questions/4604239/) –