- 在发送端的应用中,创建自定义的ContentProvider,并在AndroidManifest.xml文件中进行声明,同时定义好Content URI对应的MIME类型。
public class MyContentProvider extends ContentProvider {
public static final String AUTHORITY = "com.example.mycontentprovider";
public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY);
// ... 省略其他操作 ...
@Override
public String getType(Uri uri) {
// 返回Content URI对应的MIME类型
return "vnd.android.cursor.item/mytable";
}
}
- 在发送端的应用中,使用下面的代码来创建带有Content URI的Intent,并发送给接收端应用。
Uri contentUri = ContentUris.withAppendedId(MyContentProvider.CONTENT_URI, id);
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType(getContentResolver().getType(contentUri));
intent.putExtra(Intent.EXTRA_STREAM, contentUri);
startActivity(Intent.createChooser(intent, "Share File"));
- 在接收端的应用中,使用getParcelableExtra方法获取Content URI,并对其进行处理。
Uri receivedUri = getIntent().getParcelableExtra(Intent.EXTRA_STREAM);
if (receivedUri != null) {
// 处理Content URI
}