Автообновление NO MARKET DELPHI XE5

Я пытаюсь создать автоматическое обновление для своего приложения без использования Android Market для приложения, которое будет распространяться только среди моих клиентов. У меня есть код ниже, но он не работает. Выдает ошибку Android.content.ActivityNotFoundException : In Actitivy found to handle intent { ....

Кому-нибудь удалось это сделать в Delphi auto update XE5?

TFrmMain.BtnInstalarClick procedure (Sender : TObject ) ;
var
    Intent : JIntent ;
    Uri : TJnet_Uri ;
begin
    Intent : = TJIntent.Create ;
    Intent.setAction ( TJIntent.JavaClass.ACTION_VIEW );
    Intent.setDataAndType(TJnet_Uri.JavaClass.parse(StringToJString('/storage/sdcard0/Android/data/com.CloudCon.AtualizacaoAutomatica/files/Rota.apk')),StringToJString('application/vnd.android.package-archive')); 
    SharedActivity.startActivity ( Intent ) ;
end ;

Путь правильный. Также были установлены разрешения INTERNET, WRITE_EXTERNAL_STORAGE и INSTALL_PACKAGES.

По-видимому, на Java я могу делать следующее:

" String command = " chmod 666 " + PATH ;
Runtime.getRuntime ( ) . Exec (command ) ; "

Как я могу это сделать в Delphi.


person Cloudcon    schedule 01.11.2013    source источник


Ответы (1)


Вы можете попробовать этот код,

var
  aFile:Jfile;
  Intent:JIntent;
begin    

  aFile:=TJfile.JavaClass.init(stringtojstring('/storage/sdcard0/Android/data/com.CloudCon.AtualizacaoAutomatica/files/'),stringtojstring('Rota.apk'));
  Intent := TJIntent.Create ;
  Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
  Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
  Intent.setDataAndType(TJnet_Uri.JavaClass.fromFile(aFile),StringToJString('application/vnd.android.package-archive'));
  SharedActivityContext.startActivity(Intent);
end;   
person user3180348    schedule 10.01.2014