Way back in April I tried to figure out how to automatically configure the profile to set up basic text formatting output. That thread is here: How to create a profile in Xamarin Forms?
Since the configuration was relatively simple, I left that task until last, and I am just now getting to implementing the code. After three days of searching and trying, I am not able to get auto import to work in any way, shape, or form. I have tried both a profile, and a configuration. I used the same names that were created by the export. I've tried at least three methods of copying the file. Nothing has worked. Help?
Here's my c# code:
private bool setuptask()
// Somewhere I saw a recommendation to not name the asset with a "known" suffix, use
// something like .dat instead. So I tried that...
string importpath = "/enterprise/device/settings/datawedge/autoimport/";
string tempfile = "/enterprise/device/settings/datawedge/datawedge.dat";
string importfile = "/enterprise/device/settings/datawedge/autoimport/datawedge.db";
string otherfile = "/enterprise/device/settings/datawedge/autoimport/dwprofile_ScanOrders.db";
string assetname = "datawedge.dat";
string filename = "datawedge.db";
// Make sure directory exists...
if (Directory.Exists(importpath) == false)
// Clear out any old files... I have been switching back and forth
// between the two files, so I clean up both of them before re-copying.
if (System.IO.File.Exists(tempfile) == true)
if (System.IO.File.Exists(otherfile) == true)
// If I set a breakpoint here. The second time I call the function,
// the file exists. (I wait a minute or two before the 2nd call.)
if (System.IO.File.Exists(importfile) == true)
// Create temp file from our assets
Android.App.Activity context = CrossCurrentActivity.Current.Activity;
AssetManager assets = context.Assets;
using (BinaryReader br = new BinaryReader(assets.Open(assetname)))
using (BinaryWriter bw = new BinaryWriter(new FileStream(tempfile, FileMode.Create)))
byte buffer = new byte;
int len = 0;
while ((len = br.Read(buffer, 0, buffer.Length)) > 0)
bw.Write(buffer, 0, len);
// Move the file into place so auto import doesn't try to pick it up before
// the copy is complete.
// Set permissions, in case that was the problem. I was setting executable, but
// saw example code that the author claimed worked, and he only set readable and
// writable. So I took it back out.
using (var newfile = new Java.IO.File(importpath, filename))
// I added this bit so I could check that the file is actually
// created. I don't know if the contents are correct, but the copied
// file is ~9000 bytes long.
long len = newfile.Length();
if ((newfile.Exists() == false) || (len < 1.0))
catch (Exception e)
UserDialogs.Instance.Alert("Exception caught: " + e.Message, "Error");