ContentProvider 的部分使用记录

A应用提供给B应用的数据调用,在A应用中insert数据,在B应用中接收并保存,但用的是binder传输,内存大小有限制(1M)。

A应用利用providerResolver,ContentValues将数据put进去

byte[] fileBytes = readFileFromAssets(fileName);
contentValues.put("PluginFile" + position, fileBytes);
contentValues.put("PluginFileName" + position, fileName);

context.getContentResolver().insert(uri, contentValues);

public static byte[] readFileFromAssets(String filename) {
    byte[] buffer = null;
    AssetManager am = DemoEngine.instance.getApplicationContext().getAssets();
    try {
        InputStream inputStream = am.open(filename);

        int length = inputStream.available();
        Log.d(TAG, "readFileFromAssets length:" + length);
        buffer = new byte[length];
        inputStream.read(buffer);
    } catch (Exception exception) {
        exception.printStackTrace();
    }
    return buffer;
}

接收端类似像Intent接收数据get出来就可以了

byte[] pluginFile = contentValues.getAsByteArray("PluginFile" + position);
String pluginFileName = contentValues.getAsString("PluginFileName" + position);
writeBytesToFile(pluginFile, pluginFileName);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值