调用Android系统安装的软件打开文件,程序停止运行

问题描述

如题,调用Android系统安装的软件打开文件时,当系统有安装相关软件时程序正常运行,但是当系统找不到该文件类型匹配的软件时就停止运行了。现在我想让它找不到相应软件时能提示用户,而不是直接停止运行,代码应该怎么写,求大神赐教!!!

解决方案1

或者捕捉startActivity的异常,但是这种方式比较粗暴。

解决方案2

try {

    //把你7楼的代码放在这里

} catch (Exception e) {

    //提示用户没有找到

}

解决方案3

何必呢,直接使用

// 获取PackageManager对象

        PackageManager pm = this.getPackageManager();

        // 设置<intent-filter>标签内需要满足的条件

        Intent intent = new Intent(Intent.ACTION_MAIN, null);

        intent.addCategory(Intent.CATEGORY_DEFAULT);

        if(intent.resolveActivity(pm)!=null){

            startActivity(intent);

        }else{

            //在这里处理没有可打开程序的事件

        }

这样先通过 intent.resolve 查询事件可否处理,然后再启动事件,或者自行处理就好了

时间: 2024-12-19 03:16:00

调用Android系统安装的软件打开文件,程序停止运行的相关文章

Android中调用系统所装的软件打开文件(转)

Android中调用系统所装的软件打开文件(转) 在应用中如何调用系统所装的软件打开一个文件,这是我们经常碰到的问题,下面是我所用到的一种方法,和大家一起分享一下! 这个是打开文件的一个方法: Java代码 /** * 打开文件 * @param file */ private void openFile(File file){ Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //设置in

cocos2d-x调用android内嵌浏览器打开网页

cocos2d-x调用android内嵌浏览器打开网页,可以从入口传入网址,C++调用android 的api即可实现.方法也很简单 1. 修改"cocos2dx\platform\win32"下的CCApplication.h和CCApplication.cpp,添加函数 头文件声明 void openURL(const char* pszUrl); cpp文件实现: void CCApplication::openURL(const char* pszUrl) { ShellExe

Android -- 分享功能和打开指定程序

打开指定程序                                                                                Intent intent = new Intent(); ComponentName cmp = new ComponentName("com.sina.weibo","com.sina.weibo.EditActivity"); intent.setAction(Intent.ACTION_M

打开文件程序

1 //打开文件 2 #include <iostream> 3 #include<fstream> 4 5 using namespace std; 6 7 int main() 8 { 9 10 int a,b; 11 ifstream inData; 12 13 inData.open("loan.txt"); 14 if (!inData) 15 { 16 cout << "不能打开!!!" << endl;

android使用其他应用打开文件

根据文件的MIME类型来判断,手机中有哪些应用可以打开这个文件,然后把应用在弹窗列表中显示 /** * 打开文件 * * @param file */ public static void openFile(Context context,File file) { //Uri uri = Uri.parse("file://"+file.getAbsolutePath()); Intent intent = new Intent(); intent.addFlags(Intent.FL

android脚步---如何看log之程序停止运行,和UI线程和非UI线程之间切换

经常运行eclipse时,烧到手机出现,“停止运行”,这时候得通过logcat查log了.一般这种情况属于FATAL EXCEPTION,所以检索FATAL 或者 EXCEPTION,然后往下看几行 例子: 11-26 16:18:17.949: E/AndroidRuntime(5363): FATAL EXCEPTION: Thread-19311-26 16:18:17.949: E/AndroidRuntime(5363): Process: com.scme.jiance, PID:

iOS APP中第三方APP调用自己的APP,打开文件

根据需求需要在项目中要打开word.pdf.excel等文件,在info.plist文件中添加 <key>CFBundleDocumentTypes</key> <array> <dict> <key>CFBundleTypeName</key> <string></string> <key>LSItemContentTypes</key> <array> <strin

c# 调用系统默认图片浏览器打开图片

private void OpenImage(string fileName) { try { Process.Start(fileName); } catch (Exception ex) { // LogHelper.WriteLog("调用默认看图软件打开失败", ex); try { string arg = string.Format( "\"{0}\\Windows Photo Viewer\\PhotoViewer.dll\", ImageV

[转]C#中调用资源管理器(Explorer.exe)打开指定文件夹 + 并选中指定文件 + 调用(系统默认的播放类)软件(如WMP)打开(播放歌曲等)文件

原文:http://www.crifan.com/csharp_call_explorer_to_open_destinate_folder_and_select_specific_file/ C#中调用资源管理器(Explorer.exe)打开指定文件夹 + 并选中指定文件 + 调用(系统默认的播放类)软件(如WMP)打开(播放歌曲等)文件 折腾: C#中如何在右下角添加提示窗口,用于显示打开文件和文件夹 的过程中,需要实现,点击对应LinkLabel后,调用资源管理器,打开对应的文件夹. [