是否可以从收到的Intent.ACTION_SEND中提取文件路径?我试图在"分享通过"名单。要做到这一点,我就是这样的清单:
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
<data android:mimeType="image/*" />
<data android:mimeType="audio/*" />
<data android:mimeType="video/*" />
<data android:mimeType="application/*" />
<data android:mimeType="text/*" />
</intent-filter>
</activity>
现在我从&#34; Share-via&#34;中选择我的应用程序名单。是否可以从接收到的意图(对于所有文件类型)获取完整文件路径?这是我到目前为止所做的:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = getIntent();
TextView output=(TextView)findViewById(R.id.textview1);
String action = intent.getAction();
if (action.equalsIgnoreCase(Intent.ACTION_SEND) && intent.hasExtra(Intent.EXTRA_TEXT)) {
String s = intent.getStringExtra(Intent.EXTRA_TEXT);
output.setText(s); //output: a TextView that holds the URL
}
}
我已经看到了许多解决方案,但大多数都只限于图像共享。有什么帮助吗?
答案 0 :(得分:2)
如果你有
<action android:name="android.intent.action.VIEW" />
您可以获取文件路径
_file = getIntent().getData().toString();
if (_file.startsWith("file:///"))
_file = _file.substring(7);
获取所有可以使用的mime类型
<data android:mimeType="*/*" />
如果您想分析其他应用的处理方式,您可以使用免费的Android应用intentintercept进行分析