我可以通过图库将图像共享到我的应用程序,但无法通过FileManager或任何其他应用程序共享

时间:2016-03-21 17:37:35

标签: android android-intent share gallery

我知道我的问题类似于this,但我没有找到任何答案,所以我想我应该在这里问。

应用程序正常运行,如果我从图库共享图像,但如果我从文件管理器共享图像不工作。让我试着详细解释一下。

修改

我已经构建了一个应用程序基本上我想从画廊或文件管理器共享一些图像到我的应用程序。我的应用程序仅在我从图库中选择图像并单击共享按钮然后单击我的应用程序名称时运行。这样我可以从画廊中选择我选择的图像。但是,我从文件管理器应用程序(即固体浏览器,ES文件浏览器)做同样的事情我无法在我的应用程序中获得任何图像。

可能会在这里得到任何解决方案。

这是我的 Manifest.xml

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme" >
    <activity android:name=".MainActivity" >
        <intent-filter>
            <action android:name="android.intent.action.SEND" />

            <category android:name="android.intent.category.DEFAULT" />

            <data android:mimeType="image/*" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.SEND_MULTIPLE" />

            <category android:name="android.intent.category.DEFAULT" />

            <data android:mimeType="image/*" />
        </intent-filter>
    </activity>
</application>

这里是MainActivity.xml

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

    Intent mIntent = getIntent();
    String action = mIntent.getAction();
    String type = mIntent.getType();

    if(action.equals(Intent.ACTION_SEND) && type != null){
        if(type.startsWith("image/")){
            Uri mUri = mIntent.getParcelableExtra(Intent.EXTRA_STREAM);
            ImageModel imageModel = new ImageModel();
            imageModel.setName("Image 1");
            imageModel.setUri(mUri);

            data.add(imageModel);
        }
    }
    else if(action.equals(Intent.ACTION_SEND_MULTIPLE) && type != null){
        ArrayList<Uri> mUris = mIntent.getParcelableArrayListExtra(Intent.EXTRA_STREAM);
        for(int i=0;i<mUris.size();i++){
            ImageModel m = new ImageModel();
            m.setName("Image "+ i);
            m.setUri(mUris.get((i)));
            data.add(m);
        }
    }
    else
    {
        Toast.makeText(this,"from outside",Toast.LENGTH_SHORT).show();
    }
}

1 个答案:

答案 0 :(得分:0)

  

要从Gallery或File Manager中共享单个,请使用此

       <activity
            android:name=".activityname">
            <intent-filter>
                <action android:name="android.intent.action.SEND" />
                <category android:name="android.intent.category.DEFAULT" />
                 <data android:mimeType="image/*" />

            </intent-filter>
        </activity>