public void run() {
FileConnection fconn = null;
try{
MultiFormatWriter writer = new MultiFormatWriter();
int width = 50;
int height = 50;
BarcodeFormat format = BarcodeFormat.QR_CODE;
Hashtable hints = new Hashtable(2);
String filePath = "file:///SDCard/";
String fileName = ""+(new Date()).getTime();
String fileExtension = "png";
if(options != null){
Object widthObj =options.getField("width");
if(widthObj != UNDEFINED){
width =((Integer)widthObj).intValue();
}
Object heightObj = options.getField("height");
if(heightObj != UNDEFINED){
height = ((Integer)heightObj).intValue();
}
Object formatObj = options.getField("format");
if(formatObj != UNDEFINED){
format = BarcodeFormat.valueOf(((String)formatObj).toUpperCase());
}
//Hints
Object charSetObj = options.getField("characterSet");
if(charSetObj != UNDEFINED){
hints.put(EncodeHintType.CHARACTER_SET, (String)charSetObj);
}
Object errorCorrectionObj = options.getField("errorCorrection");
if(errorCorrectionObj != UNDEFINED){
hints.put(EncodeHintType.ERROR_CORRECTION, (Integer)errorCorrectionObj);
}
Object filePathObj = options.getField("filePath");
if(filePathObj != UNDEFINED){
String filePathOrig = (String)filePathObj;
fileExtension = filePathOrig.substring(filePathOrig.lastIndexOf('.')+1);
fileName = filePathOrig.substring(filePathOrig.lastIndexOf('/')+1,filePathOrig.lastIndexOf('.'));
filePath = filePathOrig.substring(0, filePathOrig.lastIndexOf('/'));
boolean validExtension = false;
for( int i =0; i< ALLOWED_EXTENSIONS.length;i++){
validExtension |= fileExtension.equals(ALLOWED_EXTENSIONS[i]);
}
if(!validExtension){
fileExtension = "png";
}
}
}
ByteMatrix bm;
try{
bm = writer.encode(contents, format, width, height,hints);
}catch(ClassCastException cce){
throw new Exception("ZXing Barcode Writer FAILURE - try different paramteres and pray");
}
//Bitmap b = BarcodeBitmap.createBitmap(bm,0);
Bitmap b = new Bitmap(width,height);