Java Android Air本机扩展将安装新的apk版本;未找到处理意图的活动“;
我只想使用AdobeAIR本机扩展名安装(要求用户提供)存储在sdcard上的新应用程序版本作为.apk文件 这是我的电子邮箱功能代码:Java Android Air本机扩展将安装新的apk版本;未找到处理意图的活动“;,java,android,actionscript-3,air,air-native-extension,Java,Android,Actionscript 3,Air,Air Native Extension,我只想使用AdobeAIR本机扩展名安装(要求用户提供)存储在sdcard上的新应用程序版本作为.apk文件 这是我的电子邮箱功能代码: @Override //args[0] is the path to local stored apk (logs as /storage/sdcard0/testStorage/updates/1.1apk) public FREObject call(FREContext _context, FREObject[] args) { context
@Override
//args[0] is the path to local stored apk (logs as /storage/sdcard0/testStorage/updates/1.1apk)
public FREObject call(FREContext _context, FREObject[] args) {
context = _context;
try {
Intent promptInstall = new Intent(Intent.ACTION_VIEW);
promptInstall.setDataAndType(Uri.parse(args[0].getAsString()), "application/vnd.android.package-archive");
promptInstall.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.getActivity().startActivity(promptInstall);
alert("Okay", "start was!"); //using AlertDialog for debug purpose
} catch (Exception e) {
alert("Error!", e.getLocalizedMessage());
e.printStackTrace();
}
return null;
}
这是我正在使用的清单:
<android>
<manifestAdditions><![CDATA[<manifest android:installLocation="auto">
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-feature android:name="android.hardware.microphone" android:required="false" />
<application android:hardwareAccelerated="true" />
<application android:debuggable="true"/>
<application>
<activity android:name="android.intent.action.VIEW">
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.RESTART_PACKAGES"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-feature android:required="true" android:name="android.hardware.touchscreen.multitouch" />
</manifest>]]></manifestAdditions>
</android>
说文件是真实的,args[0]路径是正确的。在谷歌数小时后,我发现问题在于缺少“file://”
现在一切都好了 请确保您在能够回答时(通常在问题发布后2天)将自己的答案标记为正确
File setupFile = new File(args[0].getAsString());
alert("Is exists?", Boolean.toString(setupFile .exists())); //output as true
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file://" + args[0].getAsString()), "application/vnd.android.package-archive");