如何在启动意图打开设备上的图库应用程序时阻止应用程序崩溃

时间:2015-07-18 13:26:31

标签: android android-intent

我需要一些帮助。在我的应用程序中,用户可以直接打开图库到我的应用程序中使用的相机意图创建的文件夹。现在我遇到的问题是,如果第一次启动应用程序,相机意图没有创建文件夹,那么当用户选择图库时应用程序将崩溃。 (创建文件夹后,意图有效)

我想知道的是有没有办法告诉用户不存在foler不存在或没有崩溃的情况?

这是启动图库的代码:

String SCAN_PATH;
File[] allFiles ;   

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    File folder = new File(Environment.getExternalStorageDirectory().getPath()+"/My Images/");
    allFiles = folder.listFiles();

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (mDrawerToggle.onOptionsItemSelected(item)) {
        return true;
    }
    switch (item.getItemId()) {
        case R.id.gallerydisplay:
        new SingleMediaScanner(MainActivity.this, allFiles[0]);

        return true;
    default:

        return super.onOptionsItemSelected(item);
    }
}

......

public class SingleMediaScanner implements MediaScannerConnectionClient {

    private MediaScannerConnection mMs;
    private File mFile;

    public SingleMediaScanner(Context context, File f) {
        mFile = f;
        mMs = new MediaScannerConnection(context, this);
        mMs.connect();
    }

    public void onMediaScannerConnected() {
        mMs.scanFile(mFile.getAbsolutePath(), null);
    }

    public void onScanCompleted(String path, Uri uri) {
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setData(uri);
        startActivity(intent);
        mMs.disconnect();
    }
  }
}

0 个答案:

没有答案