首页 > 解决方案 > 未找到处理 Intent 的 Activity { act=android.intent.action.OPEN_DOCUMENT cat=[android.intent.category.OPENABLE] typ=/* }

问题描述

请帮我。我是一个绝对的初学者。找不到上面的视频。调试代码会出现下面提到的错误。看不懂那些意思。请帮助正确的代码

尝试打开文件浏览器的应用程序,但我收到调试消息

com.example.anirbitadak.translator.MainActivity.startsearch(MainActivity.java:59)
  at com.example.anirbitadak.translator.MainActivity.access$000(MainActivity.java:15)
  at com.example.anirbitadak.translator.MainActivity$1.onClick(MainActivity.java:47)*/

活动:

package com.example.anirbitadak.translator;

import android.app.Activity;
import android.net.Uri;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.content.Intent;
import android.widget.Toast;
import android.util.Log;

public class MainActivity extends AppCompatActivity {
Button upload, translate;
public static final int REQUEST_CODE = 12;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    upload = (Button) findViewById(R.id.upload);
    translate = (Button) findViewById(R.id.translate);
    upload.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v){
           startsearch();

        }
    });
  }

private void startsearch() {//declaration of startsearch();
    Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
    intent.setType("/*.docx");
    //intent.setType("/*.pdf");
    //intent.setType("/*.doc");
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    startActivityForResult(intent, REQUEST_CODE);

}

@Override
protected void onActivityResult(int requestcode, int resultcode, Intent data) {
    super.onActivityResult(requestcode, resultcode, data);

    if (requestcode == REQUEST_CODE && resultcode == Activity.RESULT_OK) {
        if (data != null) {
            Uri uri = data.getData();
           //Flashing the path
            Toast.makeText(this, "Uri:" + uri, Toast.LENGTH_LONG).show();
            Toast.makeText(this, "Path:" + uri.getPath(), Toast.LENGTH_LONG).show();
        }
    }

 }

}

标签: javaandroid

解决方案


代码对我来说看起来不错。

您确定DocumentsProvider设备上安装了可以处理 .docx 的设备吗?

你确定你的 mime 模式是正确的吗?docx 的 mime 是application/vnd.openxmlformats-officedocument.wordprocessingml.document. 无论如何,您将其指定为以“/”开头似乎是不正确的,因为 mime 类型以斜线分隔但不以“/”开头。


推荐阅读