Codenameone 未找到使用Android的Codename One本机代码的活动
我正在尝试从我的应用程序安装Codenameone 未找到使用Android的Codename One本机代码的活动,codenameone,Codenameone,我正在尝试从我的应用程序安装.apk文件 我将.apk文件放在其他应用程序也可以访问的目录中,然后在Android native中调用以下代码: private static Activity activity() { return com.codename1.impl.android.AndroidNativeUtil.getActivity(); } public void install(String fileName) { Intent intent = new
.apk
文件
我将.apk
文件放在其他应用程序也可以访问的目录中,然后在Android native中调用以下代码:
private static Activity activity() {
return com.codename1.impl.android.AndroidNativeUtil.getActivity();
}
public void install(String fileName) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(getDownloadPath() + File.separator + fileName), "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
activity().startActivity(intent);
}
public String getDownloadPath() {
return Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath() + File.separator + "myfolder";
}
我还向构建提示添加了以下权限:
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
用于安装的代码片段也可以在原始Android应用程序上成功运行
是不是有什么事我忘了做,或者在CodenameOne中使用了错误的活动?安装嵌入到应用程序中的APK听起来像是不可能的事情,您会收到一个错误,即没有可用的活动来处理该文件。安装嵌入到应用程序中的APK听起来像是不可能的事情,您会收到一个不可能的错误“活动”可用于处理该文件。此行存在问题:
intent.setDataAndType(Uri.parse(getDownloadPath() + File.separator + fileName), "application/vnd.android.package-archive");
应该是:
intent.setDataAndType(Uri.fromFile(new File(getDownloadPath() + File.separator + fileName)), "application/vnd.android.package-archive");
原因是前面添加了文件://
另外,似乎不需要
INSTALL\u PACKAGES
权限。问题在于这一行:
intent.setDataAndType(Uri.parse(getDownloadPath() + File.separator + fileName), "application/vnd.android.package-archive");
应该是:
intent.setDataAndType(Uri.fromFile(new File(getDownloadPath() + File.separator + fileName)), "application/vnd.android.package-archive");
原因是前面添加了文件://
另外,似乎不需要
INSTALL\u PACKAGES
权限。Hi,正如问题中所解释的,它在纯android应用程序上确实成功运行。APK未嵌入应用程序中,它位于设备上的文件夹中,其他应用程序也可以访问它。这只是开始安装任务,它将提示用户并开始安装。基本上是“打开”apk并让操作系统从那里接管。您是如何将权限添加到构建提示的?在什么暗示下?你用图形用户界面了吗?您确定这是文件所在的确切位置,并且此代码段在该设备上以该路径本机工作吗?请注意,谷歌在回顾中做出了类似的改变。您好,正如问题中所解释的,它确实成功地在纯android应用程序上工作。APK未嵌入应用程序中,它位于设备上的文件夹中,其他应用程序也可以访问它。这只是开始安装任务,它将提示用户并开始安装。基本上是“打开”apk并让操作系统从那里接管。您是如何将权限添加到构建提示的?在什么暗示下?你用图形用户界面了吗?您确定这是文件所在的确切位置,并且此代码段在该设备上以该路径本机工作吗?请注意,回顾过去,谷歌会做出类似的改变。