Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android ActivityNotFoundException未能捕获操作系统4.1.2中的意图(适用于4.0.3)?_Java_Android_Android Intent_Exception Handling_Android 4.2 Jelly Bean - Fatal编程技术网

Java Android ActivityNotFoundException未能捕获操作系统4.1.2中的意图(适用于4.0.3)?

Java Android ActivityNotFoundException未能捕获操作系统4.1.2中的意图(适用于4.0.3)?,java,android,android-intent,exception-handling,android-4.2-jelly-bean,Java,Android,Android Intent,Exception Handling,Android 4.2 Jelly Bean,谢谢你看。我是一个非常老的程序员,但对Android/Java绝对是新手。虽然我还没有找到一种方法使代码变得丰富多彩和漂亮;) 我正在启动一个活动,以打开一个具有伪/假扩展名(mime类型)的文件,以便我可以强制此活动NotFoundException异常(测试) 不知何故,我的三星Galaxy S3(OS 4.1.2)从未出现过这种异常。AdobeReader打开并显示错误,该文件不是PDF(不是)。然而,在运行4.0.3的较旧ASUS Transformer平板电脑上,异常被正确捕获 有关守

谢谢你看。我是一个非常老的程序员,但对Android/Java绝对是新手。虽然我还没有找到一种方法使代码变得丰富多彩和漂亮;)

我正在启动一个活动,以打开一个具有伪/假扩展名(mime类型)的文件,以便我可以强制此活动NotFoundException异常(测试)

不知何故,我的三星Galaxy S3(OS 4.1.2)从未出现过这种异常。AdobeReader打开并显示错误,该文件不是PDF(不是)。然而,在运行4.0.3的较旧ASUS Transformer平板电脑上,异常被正确捕获

有关守则如下:

// this file exists (check omitted).. 
File docFile = new File("/path/to/file.bogusextension");

// intent
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);

// getting doc Uri
Uri fileUri = Uri.fromFile(docFile);

// getting doc mimeType
MimeTypeMap mime = MimeTypeMap.getSingleton();
String extension = MimeTypeMap.getFileExtensionFromUrl(fileUrl);
String mimeType = mime.getMimeTypeFromExtension(extension);

intent.setDataAndType(fileUri, mimeType);

// this is for an adobe native extension, just getting FREContext
// in the class below and mapping functions
DocLauncherExtensionContext extensionContext = (DocLauncherExtensionContext) context;
Activity activity = extensionContext.getActivity();

try
{
    activity.startActivity(intent);                 
}
catch (ActivityNotFoundException e) 
{
    Toast.makeText(context.getActivity(), "This never happens!", Toast.LENGTH_LONG).show();                 
}
这段代码是否有任何明显的错误,允许一个具有任何扩展名的文件不断地抛出到AdobeReader中?我已清除默认设置(设置->应用程序管理器->重置)。我所说的一切都是针对AdobeReader的

任何想法都很感激!谢谢大家!

Intent intent = new Intent();
需要成为:

Intent intent = new Intent(Intent.ACTION_VIEW);

您正在将数据和操作代码放入意图中,但是您从未告诉它意图是什么。

下一行没有配置它吗?(intent.setAction(intent.ACTION_视图);)。我试过你的建议,它奏效了!我想知道为什么setAction()没有正确配置它。不管怎样,现在都很好用,谢谢!
setAction()
方法用于将操作代码传递到活动中。如果您有一个可以执行多个操作的自定义活动,您可以告诉它您需要它执行什么操作,那么就可以使用它。你需要使用
ACTION\u VIEW
活动来创建一个新的意图。也许是因为语言太新,这似乎是“知情者”会理解的细微差别。如果您选择了重载构造函数的另一个版本,比如像您那样指定活动,而不是无参数构造函数,则重载构造函数的操作必须完全不同。setActivity()显然与在构造函数中设置它不同。据我所知,它肯定修复了它。非常感谢。