dodaj podstawową funkcjonalność dekodowania kodów kreskowych i QR

This commit is contained in:
Kacper Dudzic 2019-12-27 21:54:37 +01:00
parent ee078c75d5
commit e3f1ae3d5c
18 changed files with 211 additions and 54 deletions

View File

@ -19,6 +19,10 @@ android {
}
}
repositories {
jcenter()
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.0.2'
@ -27,4 +31,6 @@ dependencies {
androidTestImplementation 'androidx.test.ext:junit:1.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
implementation project(path: ':openCVLibrary348')
implementation 'com.journeyapps:zxing-android-embedded:3.0.2@aar'
implementation 'com.google.zxing:core:3.2.0'
}

View File

@ -12,7 +12,8 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".Scan"></activity>
<activity android:name=".Decode" />
<activity android:name=".TakePhoto" />
<activity android:name=".Help" />
<activity android:name=".About" />
<activity android:name=".MainActivity" >

View File

@ -0,0 +1,126 @@
package com.example.lookifyv2;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.DecodeHintType;
import com.google.zxing.LuminanceSource;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.NotFoundException;
import com.google.zxing.RGBLuminanceSource;
import com.google.zxing.Result;
import com.google.zxing.common.HybridBinarizer;
import org.opencv.android.BaseLoaderCallback;
import org.opencv.android.LoaderCallbackInterface;
import org.opencv.android.OpenCVLoader;
import org.opencv.android.Utils;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;
public class Decode extends AppCompatActivity {
//inicjacja logów OpenCV
private static final String TAG = "OCVSample::Activity";
String filePath;
Mat matPic;
//OpenCV domyślnie uruchamia się po onCreate co powoduje problemy - zapobiegamy więc temu
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
@Override
public void onManagerConnected(int status) {
switch (status) {
case LoaderCallbackInterface.SUCCESS: {
Log.i(TAG, "OpenCV loaded successfully");
decodePic();
}
break;
default: {
super.onManagerConnected(status);
}
break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_decode);
}
public void decodePic() {
//pobieramy adres pliku przekazywany przez poprzednie activity
Bundle extras = getIntent().getExtras();
filePath = extras.getString("takenPic");
matPic = Imgcodecs.imread(filePath);
String contents = null;
Bitmap bMap = Bitmap.createBitmap(matPic.width(), matPic.height(), Bitmap.Config.ARGB_8888);
Utils.matToBitmap(matPic, bMap);
int[] intArray = new int[bMap.getWidth() * bMap.getHeight()];
bMap.getPixels(intArray, 0, bMap.getWidth(), 0, 0, bMap.getWidth(), bMap.getHeight());
LuminanceSource source = new RGBLuminanceSource(bMap.getWidth(), bMap.getHeight(), intArray);
BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
//Zwiększanie efektywności wykrywania kodów
Hashtable<DecodeHintType, Object> hints = new Hashtable<>();
List<Object> formats = new ArrayList<>();
formats.add(BarcodeFormat.AZTEC);
formats.add(BarcodeFormat.CODABAR);
formats.add(BarcodeFormat.CODE_39);
formats.add(BarcodeFormat.CODE_93);
formats.add(BarcodeFormat.CODE_128);
formats.add(BarcodeFormat.DATA_MATRIX);
formats.add(BarcodeFormat.EAN_8);
formats.add(BarcodeFormat.EAN_13);
formats.add(BarcodeFormat.ITF);
formats.add(BarcodeFormat.PDF_417);
formats.add(BarcodeFormat.QR_CODE);
formats.add(BarcodeFormat.RSS_14);
formats.add(BarcodeFormat.RSS_EXPANDED);
formats.add(BarcodeFormat.UPC_A);
formats.add(BarcodeFormat.UPC_E);
hints.put(DecodeHintType.POSSIBLE_FORMATS, formats);
hints.put(DecodeHintType.TRY_HARDER, true);
//Szukanie kodu na wczytanym zdjęciu
MultiFormatReader reader = new MultiFormatReader();
try {
Result result = reader.decode(bitmap, hints);
contents = result.getText();
} catch (NotFoundException e) {
e.printStackTrace();
}
Toast toast = Toast.makeText(this, contents, Toast.LENGTH_LONG);
toast.show();
}
//Druga część potrzebna do ładowania OpenCV w odpowiednim momencie
@Override
protected void onResume() {
super.onResume();
if (!OpenCVLoader.initDebug()) {
Log.d(TAG, "Internal OpenCV library not found. Using OpenCV Manager for initialization");
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_0_0, this, mLoaderCallback);
} else {
Log.d(TAG, "OpenCV library found inside package. Using it!");
mLoaderCallback.onManagerConnected(LoaderCallbackInterface.SUCCESS);
}
}
}

View File

@ -72,7 +72,7 @@ public class MainActivity extends AppCompatActivity {
}
public void openScan(){
Intent intent_Scan = new Intent(this, Scan.class);
Intent intent_Scan = new Intent(this, TakePhoto.class);
startActivity(intent_Scan);
}
}

View File

@ -1,18 +1,21 @@
package com.example.lookifyv2;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import androidx.appcompat.app.AppCompatActivity;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
//klasa napisana z pomocą tutorialu dostępnego na https://androidkennel.org/android-camera-access-tutorial/
public class Scan extends AppCompatActivity {
public class TakePhoto extends AppCompatActivity {
private Uri file;
private Uri photoFileUri;
public File photoFile;
String path;
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -24,18 +27,22 @@ public class Scan extends AppCompatActivity {
//Uruchomienie androidowego modułu kamery
public void openCamera() {
Intent intent_Camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
file = Uri.fromFile(getOutputMediaFile());
intent_Camera.putExtra(MediaStore.EXTRA_OUTPUT, file);
photoFile = getOutputMediaFile();
photoFileUri = Uri.fromFile(photoFile);
intent_Camera.putExtra(MediaStore.EXTRA_OUTPUT, photoFileUri);
startActivityForResult(intent_Camera, 100);
}
//Jeśli moduł kamery zostanie zamknięty zanim zrobione zostanie zdjęcie to activity skanowania się kończy
//Jeśli moduł kamery zostanie zamknięty zanim zrobione zostanie zdjęcie to activity skanowania się kończy, w innym razie przechodzi dalej
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 100) {
if (resultCode == RESULT_CANCELED) {
finish();
}
else {
goDecode();
}
}
}
@ -50,9 +57,16 @@ public class Scan extends AppCompatActivity {
}
}
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
return new File(mediaStorageDir.getPath() + File.separator +
"TEMP_"+ timeStamp + ".jpg"); //DO EDYCJI
"TEMP" + ".jpg");
}
//Przejście do activity odpowiedzialnego za odczytywanie kodu wraz z przekazaniem jej ścieżki zdjęcia
public void goDecode(){
path = photoFile.getAbsolutePath();
Intent intent_Decode = new Intent(this, Decode.class);
intent_Decode.putExtra("takenPic", path);
startActivity(intent_Decode);
finish();
}
}

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Decode">
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Scan">
tools:context=".TakePhoto">
<TextView
android:id="@+id/textView2"

View File

@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\jniLibs"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\debug\jniLibs"/></dataSet></merger>
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\jniLibs"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\debug\jniLibs"/></dataSet></merger>

View File

@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\shaders"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\debug\shaders"/></dataSet></merger>
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\shaders"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\debug\shaders"/></dataSet></merger>

View File

@ -1,2 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\assets"/><source path="C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\build\intermediates\shader_assets\debug\compileDebugShaders\out"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\debug\assets"/></dataSet></merger>
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\assets"/><source path="C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\build\intermediates\shader_assets\debug\compileDebugShaders\out"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\debug\assets"/></dataSet></merger>

View File

@ -1 +1 @@
#Wed Dec 18 23:21:27 CET 2019
#Fri Dec 20 20:43:57 CET 2019

View File

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\res"/><source path="C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\build\generated\res\rs\debug"/><source path="C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\build\generated\res\resValues\debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main" generated-set="main$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\res"><file path="C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\res\values\attrs.xml" qualifiers=""><declare-styleable name="CameraBridgeViewBase">
<merger version="3"><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\res"/><source path="C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\build\generated\res\rs\debug"/><source path="C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\build\generated\res\resValues\debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main" generated-set="main$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\res"><file path="C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\res\values\attrs.xml" qualifiers=""><declare-styleable name="CameraBridgeViewBase">
<attr format="boolean" name="show_fps"/>
<attr format="integer" name="camera_id">
<enum name="any" value="-1"/>
<enum name="back" value="99"/>
<enum name="front" value="98"/>
</attr>
</declare-styleable></file></source><source path="C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\build\generated\res\rs\debug"/><source path="C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\build\generated\res\resValues\debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\debug\res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug" generated-set="debug$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\debug\res"/></dataSet><mergedItems><configuration qualifiers=""><declare-styleable name="CameraBridgeViewBase">
</declare-styleable></file></source><source path="C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\build\generated\res\rs\debug"/><source path="C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\build\generated\res\resValues\debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\debug\res"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="debug" generated-set="debug$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\debug\res"/></dataSet><mergedItems><configuration qualifiers=""><declare-styleable name="CameraBridgeViewBase">
<attr format="boolean" name="show_fps"/>
<attr format="integer" name="camera_id">
<enum name="any" value="-1"/>

View File

@ -6,8 +6,8 @@
6
7 <uses-sdk
8 android:minSdkVersion="14"
8-->C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml
8-->C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml
9 android:targetSdkVersion="29" />
9-->C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml
9-->C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml
10
11</manifest>

View File

@ -1,37 +1,37 @@
-- Merging decision tree log ---
manifest
ADDED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml:2:1-7:12
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml:2:1-7:12
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml:2:1-7:12
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml:2:1-7:12
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml:2:1-7:12
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml:2:1-7:12
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml:2:1-7:12
ADDED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml:2:1-7:12
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml:2:1-7:12
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml:2:1-7:12
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml:2:1-7:12
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml:2:1-7:12
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml:2:1-7:12
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml:2:1-7:12
package
ADDED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml:3:7-27
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml
ADDED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml:3:7-27
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml
android:versionName
ADDED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml:5:7-34
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml
ADDED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml:5:7-34
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml
xmlns:android
ADDED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml:2:11-69
ADDED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml:2:11-69
android:versionCode
ADDED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml:4:7-33
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml
ADDED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml:4:7-33
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml
uses-sdk
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml reason: use-sdk injection requested
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml reason: use-sdk injection requested
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml
android:targetSdkVersion
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml
ADDED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml
ADDED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml
android:minSdkVersion
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml
ADDED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookifyv2kopia\openCVLibrary348\src\main\AndroidManifest.xml
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml
ADDED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml
INJECTED from C:\HDD\Moi\Studia\Informatyka\Lookify\openCVLibrary348\src\main\AndroidManifest.xml