下载安装apk报错

android.content.activitynotfoundexception:No Activity found to

handle intent { act=android.intent.action.VIEW dat=/data/data/

typ=application/vnd.android.package-archive flg=0x10000000 }

function OpenFile:Boolean;
  var
    apkPath:string;
    Intent:JIntent;
begin
  apkPath := 'file://' + TPath.Combine(TPath.GetDownloadsPath,'papa.apk');
  Intent := TJIntent.Create;
  Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
  Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
  Intent.setDataAndType(TJnet_Uri.JavaClass.parse(StringToJString(apkPath)),StringToJString('application/vnd.android.package-archive'));
  SharedActivity.startActivity(Intent);
end;

关键是加上 file:// 就搞定了。。。

参考资料:

http://bbs.csdn.net/topics/392008234

http://www.cnblogs.com/liyiran/p/6289450.html

 

Delphi XE6开发的AndRoid应用实现在线升级完成后自动安装apk代码(加说明) 

 http://www.dfwlt.com/forum.php?mod=viewthread&tid=445

Android实例-IdHTTP下载(并实现自动安装)(XE10+小米2)

http://www.cnblogs.com/FKdelphi/p/5416941.html

 

还要补充的就是,调用指定浏览器打开网页:关键是setPackage方法,不过,也可以是setClassName方法,都可以的。

function openURL(AUrl:string):Boolean;
  var
    Intent:JIntent;
begin
  Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW,TJnet_Uri.JavaClass.parse(StringToJString(AUrl)));
  Intent.setPackage(StringToJString('com.qihoo.browser'));
  SharedActivity.startActivity(Intent);
end;

参考:http://www.cnblogs.com/devcjq/articles/7380606.html

posted @ 2017-10-19 14:45  stma  阅读(321)  评论(0)    收藏  举报