领悟旧事

Learned Helplessness
分类新闻>>生活领悟>>
XE10 C++Builder Android安装Apk
来源:http://www.xx0594.com/
时间:2023-8-4
作者:  浏览人数:431
void  SimpleInstallAPK(AnsiString filePath)

{

#if defined(TARGET_OS_IPHONE) || defined(TARGET_IPHONE_SIMULATOR) || defined(__ANDROID__)
 if (TFile::Exists(filePath)) {
  _di_JContext Context = TAndroidHelper::Context;
  // Create the intent to install the APK file
  // Set the path to the APK file in the app's data directory
  UnicodeString mimeType = "application/vnd.android.package-archive";
  _di_JString mimeType1 = StringToJString(mimeType);
  // Create the intent to install the APK file
  _di_JIntent intent = TJIntent::JavaClass->init();
  intent->setAction(TJIntent::JavaClass->ACTION_VIEW);
  intent->addCategory(TJIntent::JavaClass->CATEGORY_DEFAULT);
  intent->setAction(TJIntent::JavaClass->ACTION_INSTALL_PACKAGE);
  intent->addFlags(TJIntent::JavaClass->FLAG_ACTIVITY_NEW_TASK);
  intent->addFlags(TJIntent::JavaClass->FLAG_GRANT_READ_URI_PERMISSION);
  intent->addFlags(TJIntent::JavaClass->FLAG_GRANT_WRITE_URI_PERMISSION);
  intent->putExtra(TJIntent::JavaClass->EXTRA_NOT_UNKNOWN_SOURCE, true);
  intent->putExtra(TJIntent::JavaClass->EXTRA_RETURN_RESULT, true);
  //当您调用 Uri.parse(path) 时,path 参数需要包含如下内容:file://(...ApkName.apk),如果
  // path 参数不包含方案(即:file:// 部分),这就是它无法被正确解析的原因。
  intent->setDataAndType(TJnet_Uri::JavaClass->parse(StringToJString("file://"+filePath)),mimeType1);
  SharedActivityContext()->startActivity(intent);
 }
#endif
}
 

关闭窗口
 访问量:519319
任何第三方若要引用、转摘本站信息,均需征得本站书面同意,否则视为侵权。本站信息为个人观点,若因引用本站信息而产生的任何情况,均与本站无关。Email:linmutou@163.com
闽ICP备14017840号-2