Almost everything in my activity is working fine, except for wherever TAG
is referenced. TAG
gets a red line and says: 'TAG' has private access in 'android.support.v4.app.FragmentActivity'
.
MainActivity (without imports)-
public class MainActivity extends AppCompatActivity { public static final String DATA_PATH = Environment .getExternalStorageDirectory().toString() + "/MainActivity"; public static final String lang = "eng"; protected Button _button; protected ImageView _image; protected TextView _field; protected String _path; protected boolean _taken; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String[] paths = new String[] { DATA_PATH, DATA_PATH + "tessdata/" }; for (String path : paths) { File dir = new File(path); if (!dir.exists()) { if (!dir.mkdirs()) { Log.v(TAG, "ERROR: Creation of directory " + path + " on sdcard failed"); return; } else { Log.v(TAG, "Created directory " + path + " on sdcard"); } } } if (!(new File(DATA_PATH + "tessdata/" + lang + ".traineddata")).exists()) { try { AssetManager assetManager = getAssets(); InputStream in = assetManager.open("tessdata/" + lang + ".traineddata"); //GZIPInputStream gin = new GZIPInputStream(in); OutputStream out = new FileOutputStream(DATA_PATH + "tessdata/" + lang + ".traineddata"); // Transfer bytes from in to out byte[] buf = new byte[1024]; int len; //while ((lenf = gin.read(buff)) > 0) { while ((len = in.read(buf)) > 0) { out.write(buf, 0, len); } in.close(); //gin.close(); out.close(); Log.v(TAG, "Copied " + lang + " traineddata"); } catch (IOException e) { Log.e(TAG, "Was unable to copy " + lang + " traineddata " + e.toString()); } } _image = ( ImageView ) findViewById( R.id.image ); _field = ( TextView ) findViewById( R.id.field ); _button = ( Button ) findViewById( R.id.button ); _button.setOnClickListener( new ButtonClickHandler() ); _path = Environment.getExternalStorageDirectory() + "/Login Data.jpg"; } public class ButtonClickHandler implements View.OnClickListener { public void onClick( View view ){ startCameraActivity(); } } protected void startCameraActivity() { File file = new File( _path ); Uri outputFileUri = Uri.fromFile( file ); Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE ); intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri ); startActivityForResult( intent, 0 ); } protected void onPhotoTaken() { _taken = true; BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 4; Bitmap bitmap = BitmapFactory.decodeFile( _path, options ); _image.setImageBitmap(bitmap); _field.setVisibility( View.GONE ); ExifInterface exif = new ExifInterface(_path); int exifOrientation = exif.getAttributeInt( ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL); int rotate = 0; switch (exifOrientation) { case ExifInterface.ORIENTATION_ROTATE_90: rotate = 90; break; case ExifInterface.ORIENTATION_ROTATE_180: rotate = 180; break; case ExifInterface.ORIENTATION_ROTATE_270: rotate = 270; break; } if (rotate != 0) { int w = bitmap.getWidth(); int h = bitmap.getHeight(); // Setting pre rotate Matrix mtx = new Matrix(); mtx.preRotate(rotate); // Rotating Bitmap & convert to ARGB_8888, required by tess bitmap = Bitmap.createBitmap(bitmap, 0, 0, w, h, mtx, false); } bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true); TessBaseAPI baseApi = new TessBaseAPI(); baseApi.init(DATA_PATH, lang); baseApi.setImage(bitmap); String recognizedText = baseApi.getUTF8Text(); baseApi.end(); } @Override protected void onSaveInstanceState( Bundle outState ) { outState.putBoolean( MainActivity.PHOTO_TAKEN, _taken ); } @Override protected void onRestoreInstanceState( Bundle savedInstanceState) { Log.i( "MakeMachine", "onRestoreInstanceState()"); if( savedInstanceState.getBoolean( MainActivity.PHOTO_TAKEN ) ) { onPhotoTaken(); } }
You should define a constant for your tag in MainActivity
:
private static final String TAG = "MainActivity"
try the following
private static final String TAG = MainActivity.class.getSimpleName();
You can use this field in your any Activity or Fragment.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With