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);