ANDROID笔记:activity通过ContentProvider传值(仿调用系统图片浏览器过程)

调用端代码
String string = getContentResolver().getType(Uri.parse("content://com.test.provider"));
Toast.makeText(MainActivity.this, "ss:"+string, 200).show();
Intent intent = new Intent();
intent.setType(string);
startActivityForResult(intent, 0);
 
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
 
super.onActivityResult(requestCode, resultCode, intent);
Bundle bundle=intent.getExtras();
String name=bundle.getString("name");
String sex=bundle.getString("sex");
Toast.makeText(MainActivity.this, name+"__"+sex, 200).show();
}
 

服务器端代码
(activity)
 //传值
String name="test";
String sex="男";
Intent intent = new Intent();
intent.putExtra("name",name);
intent.putExtra("sex", sex);
//设置结果
setResult(1,intent);
//调用finsish后前面的
finish();
 
activity的配置文件
<intent-filter>
                <action android:name="com.test.test" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="vnd.android.cursor.item/myitem" />
</intent-filter>
 
(Provider)
@Override
public String getType(Uri uri) {
// 单一数据 vnd.android.cursor.item 开头
// 集合数据 vnd.android.cursor.dir 开头
     return "vnd.android.cursor.item/myitem";
}
provider的配置文件
<provider
            android:name=".MyProvider"
            android:authorities="com.test.provider"
            android:exported="true" >
</provider>
原文地址:https://www.cnblogs.com/afluy/p/3420295.html