Korisnički alati

Site alati


2018:karlo_siladi:projektni_zadatak

Razlike

Slijede razlike između dviju inačica stranice

Poveznica na ovu usporedbu

Starije izmjene na obje strane Starija izmjena
Novija izmjena
Starija izmjena
Novija izmjena Novije izmjene na obje strane
2018:karlo_siladi:projektni_zadatak [2018/06/14 00:54]
ksiladi kod android aplikacije
2018:karlo_siladi:projektni_zadatak [2018/06/14 01:03]
ksiladi
Redak 96: Redak 96:
 Za lakše rukovanje sustav je smješten u plastično kućište. Zbog malog dometa RFID čitača isti je postavljen izvan kućišta. Također izvan se nalaze i slušalice. Za lakše rukovanje sustav je smješten u plastično kućište. Zbog malog dometa RFID čitača isti je postavljen izvan kućišta. Također izvan se nalaze i slušalice.
  
-{{:​2018:​karlo_siladi:​kuciste.jpg?​nolink&​300x400}}+{{:​2018:​karlo_siladi:​kuciste.jpg?​nolink&​300x400|kuciste.jpg}}
  
 ====== Komunikacija s vanjskim sustavima ====== ====== Komunikacija s vanjskim sustavima ======
Redak 112: Redak 112:
 ===== Android Studio ===== ===== Android Studio =====
  
-[[https://​developer.android.com/​studio/​|Za izradu Android aplikacije potrebno je instalirati razvojni alat Android Studio. Najnovija verzija trenutno je 3.1.3. a dostupna je za preuzimanje na sljedećoj poveznici: https://​developer.android.com/​studio/​]] ​ .+[[https://​developer.android.com/​studio/​|Za izradu Android aplikacije potrebno je instalirati razvojni alat Android Studio. Najnovija verzija trenutno je 3.1.3. a dostupna je za preuzimanje na sljedećoj poveznici: https://​developer.android.com/​studio/​]] .
  
 <font 12pt/​inherit;;​blue;;​inherit>​Detaljne upute za instalaciju razvojnog alata Android Studio</​font>​ <font 12pt/​inherit;;​blue;;​inherit>​Detaljne upute za instalaciju razvojnog alata Android Studio</​font>​
Redak 120: Redak 120:
 ==== Kreiranje projekta ==== ==== Kreiranje projekta ====
  
-<font 12pt/​inherit;;​blue;;​inherit>​Nakon uspješne instalacije razvojnog alata potrebno je kreirati novi Android projekt. Kod stvaranja projekta potrebno je unijeti proizvoljno ime projekta. Korišteno ime je  ​CKGE_TMP_i ​SPVP_projekt ​CKGE_TMP_i ​. Stvara se novi direktorij istog imena u kojeg se spremaju programski kodovi, biblioteke te resursi potrebni za aplikaciju. Nakon toga potrebno je unijeti verziju platforme za koju se projekt izrađuje. Odabrana je verzija ​ ​CKGE_TMP_i ​API: 19 Android 4.4 (KitKat) ​CKGE_TMP_i  ​što je relativno stara verzija Android operacijskog sustava, ali je time omogućeno da se aplikacija može pokretati na većini mobilnih uređaja jer je pokretanje moguće i na svim novijim verzijama Androida.</​font>​+Nakon uspješne instalacije razvojnog alata potrebno je kreirati novi Android projekt. Kod stvaranja projekta potrebno je unijeti proizvoljno ime projekta. Korišteno ime je SPVP_projekt . Stvara se novi direktorij istog imena u kojeg se spremaju programski kodovi, biblioteke te resursi potrebni za aplikaciju. Nakon toga potrebno je unijeti verziju platforme za koju se projekt izrađuje. Odabrana je verzija API: 19 Android 4.4 (KitKat) što je relativno stara verzija Android operacijskog sustava, ali je time omogućeno da se aplikacija može pokretati na većini mobilnih uređaja jer je pokretanje moguće i na svim novijim verzijama Androida.
  
-<font 12.0pt/​inherit;;​inherit;;​inherit>​Pri kreiranju novog projekta, stvoren je novi  ​CKGE_TMP_i ​Activity ​CKGE_TMP_i  ​koji prikazuje grafičko sučelje koje vidi korisnik pri pokretanju aplikacije. Potrebno je odabrati ​ ​CKGE_TMP_i ​Empty Activity ​CKGE_TMP_i  ​i dodijeliti mu naziv  ​CKGE_TMP_i ​MainActivity. ​CKGE_TMP_i</​font>​+Pri kreiranju novog projekta, stvoren je novi Activity koji prikazuje grafičko sučelje koje vidi korisnik pri pokretanju aplikacije. Potrebno je odabrati Empty Activity i dodijeliti mu naziv MainActivity.
  
-===  AndroidManifest.xml ​ ===+=== AndroidManifest.xml ===
  
-<font 12pt/​inherit;;​inherit;;​inherit>​Kako bi aplikacija ispravno radila potrebno je u datoteku ​ CKGE_TMP_i AndroidManifest.xml ​CKGE_TMP_i  ​dodati potrebne dozvole za korištenjem ​ ​CKGE_TMP_i ​Bluetooth ​CKGE_TMP_i  ​sučelja.</​font>​+Kako bi aplikacija ispravno radila potrebno je u datoteku CKGE_TMP_i AndroidManifest.xml dodati potrebne dozvole za korištenjem Bluetooth sučelja.
  
 <font 9pt/​inherit;;​inherit;;​inherit><​uses-permission android:​name="​android.permission.BLUETOOTH"​ /></​font>​ <font 9pt/​inherit;;​inherit;;​inherit><​uses-permission android:​name="​android.permission.BLUETOOTH"​ /></​font>​
Redak 132: Redak 132:
 <font 9pt/​inherit;;​inherit;;​inherit><​uses-permission android:​name="​android.permission.BLUETOOTH_ADMIN"​ /></​font>​ <font 9pt/​inherit;;​inherit;;​inherit><​uses-permission android:​name="​android.permission.BLUETOOTH_ADMIN"​ /></​font>​
  
-<font 12.0pt/​inherit;;​inherit;;​inherit>​Potrebno je i navesti sve  ​CKGE_TMP_i ​Activity ​CKGE_TMP_i  ​java razrede koji se koriste u aplikaciji. Korišteni su  ​CKGE_TMP_i ​MainActivity ​CKGE_TMP_i ​ ​CKGE_TMP_i ​ProductInfoActivity ​CKGE_TMP_i  ​ ​CKGE_TMP_i ​ProjectAboutActivity. ​CKGE_TMP_i</​font>​+Potrebno je i navesti sve Activity java razrede koji se koriste u aplikaciji. Korišteni su MainActivity , ProductInfoActivity i ProjectAboutActivity.
  
-<font 12.0pt/​inherit;;​inherit;;​inherit>​Oznakom ​ ​CKGE_TMP_i ​intent-filter ​ ​CKGE_TMP_i ​daje se do znanja Androd OS-u koju Activity treba pokrenuti prilikom pokretanja aplikacije. U manifestu se još navode i korištene ikone.</​font>​ +Oznakom intent-filter daje se do znanja Androd OS-u koju Activity treba pokrenuti prilikom pokretanja aplikacije. U manifestu se još navode i korištene ikone.
- +
-<​code><​font inherit/​inherit;;#​e8bf6a;;​inherit><?</​font><​font inherit/​inherit;;#​bababa;;​inherit>​xml version=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​1.0"</​font><​font inherit/​inherit;;#​bababa;;​inherit>​encoding=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​utf-8"</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit>?></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit><​manifest</​font><​font inherit/​inherit;;#​bababa;;​inherit>​xmlns:</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>​=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​http://​schemas.android.com/​apk/​res/​android"</​font><​font inherit/​inherit;;#​6a8759;;​inherit></​font><​font inherit/​inherit;;#​bababa;;​inherit>​package=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​com.example.karlosiladi.bazapodataka"</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit>></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit><​uses-permission</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​name=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​android.permission.BLUETOOTH_ADMIN"</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit>/></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit><​uses-permission</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​name=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​android.permission.BLUETOOTH"</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit>/></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit><​application</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​allowBackup=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​true"</​font><​font inherit/​inherit;;#​6a8759;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​icon=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​@mipmap/​ic_launcher_spvp"</​font><​font inherit/​inherit;;#​6a8759;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​label=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​@string/​app_name"</​font><​font inherit/​inherit;;#​6a8759;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​roundIcon=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​@mipmap/​ic_launcher_spvp_round"</​font><​font inherit/​inherit;;#​6a8759;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​supportsRtl=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​true"</​font><​font inherit/​inherit;;#​6a8759;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​theme=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​@style/​AppTheme"</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit>></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit><​activity</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​name=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​.ProductInfoActivity"</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit>/></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit><​activity</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​name=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​.MainActivity"</​font><​font inherit/​inherit;;#​6a8759;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​label=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​@string/​title_activity_main"</​font><​font inherit/​inherit;;#​6a8759;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​screenOrientation=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​landscape"</​font><​font inherit/​inherit;;#​6a8759;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​theme=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​@style/​AppTheme.NoActionBar"</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit>></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit><​intent-filter></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit><​action</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​name=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​android.intent.action.MAIN"</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit>/></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit><​category</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​name=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​android.intent.category.LAUNCHER"</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit>/></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit></​intent-filter></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit></​activity></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit><​activity</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​android</​font><​font inherit/​inherit;;#​bababa;;​inherit>:​name=</​font><​font inherit/​inherit;;#​6a8759;;​inherit>"​.ProjectAboutActivity"</​font><​font inherit/​inherit;;#​e8bf6a;;​inherit>/></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit></​application></​font><​font inherit/​inherit;;#​e8bf6a;;​inherit></​manifest></​font></​code>​+
  
 === Struktura proizvoda === === Struktura proizvoda ===
  
-<​code>​<font inherit/​inherit;;#​cc7832;;​inherit>​public class</​font>​Products { +<​code>​ 
-    <font inherit/​inherit;;#​bbb529;;​inherit>​@NonNull</​font><​font inherit/​inherit;;#​bbb529;;​inherit>​@PrimaryKey</​font><​font inherit/​inherit;;#​bbb529;;​inherit></​font><​font inherit/​inherit;;#​cc7832;;​inherit>​private</​font>​String <font inherit/​inherit;;#​9876aa;;​inherit>​productId</​font><​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​private</​font>​String <font inherit/​inherit;;#​9876aa;;​inherit>​productName</​font><​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​private</​font>​String <font inherit/​inherit;;#​9876aa;;​inherit>​productPrice</​font><​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​public</​font><​font inherit/​inherit;;#​ffc66d;;​inherit>​Products</​font>​() { +<?xml version="​1.0" encoding="​utf-8"?​
-    } +<manifest xmlns:​android="​http:​//schemas.android.com/apk/res/android"​ 
-    <font inherit/​inherit;;#​cc7832;;​inherit>​public</​font>​String <font inherit/​inherit;;#​ffc66d;;​inherit>​getProductId</​font>​() { <font inherit/​inherit;;#​cc7832;;​inherit>​return</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​productId</​font><​font inherit/​inherit;;#​cc7832;;​inherit>;</​font>​} +    ​package="com.example.karlosiladi.bazapodataka"​>
-    <font inherit/​inherit;;#​cc7832;;​inherit>​public void</​font><​font inherit/​inherit;;#​ffc66d;;​inherit>​setProductId</​font>​(String productId) { <font inherit/​inherit;;#​cc7832;;​inherit>​this</​font>​.<font inherit/​inherit;;#​9876aa;;​inherit>​productId</​font>​productId<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font>​} +
-    <font inherit/inherit;;#​cc7832;;​inherit>​public<​/font>​String <font inherit/inherit;;#​ffc66d;;​inherit>​getProductName<​/font>() { <font inherit/inherit;;#​cc7832;;​inherit>​return</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​productName</​font><​font inherit/​inherit;;#​cc7832;;​inherit>;</​font>​} +
-    ​<font inherit/​inherit;;#​cc7832;;​inherit>​public void</​font><​font inherit/​inherit;;#​ffc66d;;​inherit>​setProductName</​font>​(String productName) { <font inherit/​inherit;;#​cc7832;;​inherit>​this</​font>​.<​font inherit/​inherit;;#​9876aa;;​inherit>​productName</​font>​productName<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font>​} +
-    <font inherit/​inherit;;#​cc7832;;​inherit>​public</​font>​String <font inherit/​inherit;;#​ffc66d;;​inherit>​getProductPrice</​font>​() { <font inherit/​inherit;;#​cc7832;;​inherit>​return</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​productPrice</​font><​font inherit/​inherit;;#​cc7832;;​inherit>;</​font>​} +
-    <font inherit/​inherit;;#​cc7832;;​inherit>​public void</​font><​font inherit/​inherit;;#​ffc66d;;​inherit>​setProductPrice</​font>​(String productPrice) {<font inherit/​inherit;;#​cc7832;;​inherit>​this</​font>​.<font inherit/​inherit;;#​9876aa;;​inherit>​productPrice</​font>​= productPrice<​font inherit/​inherit;;#​cc7832;;​inherit>;</​font>}+
  
-}+    <​uses-permission android:​name="​android.permission.BLUETOOTH_ADMIN"​ /> 
 +    <​uses-permission android:​name="​android.permission.BLUETOOTH"​ /> 
 + 
 +    <​application 
 +        android:​allowBackup="​true"​ 
 +        android:​icon="​@mipmap/​ic_launcher_spvp"​ 
 +        android:​label="​@string/​app_name"​ 
 +        android:​roundIcon="​@mipmap/​ic_launcher_spvp_round"​ 
 +        android:​supportsRtl="​true"​ 
 +        android:​theme="​@style/​AppTheme">​ 
 +        <​activity android:​name="​.ProductInfoActivity"​ /> 
 +        <​activity 
 +            android:​name="​.MainActivity"​ 
 +            android:​label="​@string/​title_activity_main"​ 
 +            android:​screenOrientation="​landscape"​ 
 +            android:​theme="​@style/​AppTheme.NoActionBar">​ 
 +            <​intent-filter>​ 
 +                <action android:​name="​android.intent.action.MAIN"​ /> 
 +                <​category android:​name="​android.intent.category.LAUNCHER"​ /> 
 +            </​intent-filter>​ 
 +        </​activity>​ 
 +        <​activity android:​name="​.ProjectAboutActivity"​ /> 
 +    </​application>​ 
 + 
 +</​manifest>​
 </​code>​ </​code>​
 +
 === Baza podataka === === Baza podataka ===
  
-<​code>​<font inherit/​inherit;;#​bbb529;;​inherit>​@Database</​font>​(<font inherit/​inherit;;#​d0d0ff;;​inherit>​entities</​font>​= {Products.<font inherit/​inherit;;#​cc7832;;​inherit>​class</​font>​}<font inherit/​inherit;;#​cc7832;;​inherit>​,</​font><​font inherit/​inherit;;#​d0d0ff;;​inherit>​version</​font>​<font inherit/​inherit;;#​6897bb;;​inherit>​1</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​,</​font><​font inherit/​inherit;;#​d0d0ff;;​inherit>​exportSchema</​font>​<font inherit/​inherit;;#​cc7832;;​inherit>​false</​font>​+<​code>​ 
-<font inherit/​inherit;;#​cc7832;;​inherit>​public abstract class</​font>​ProductDatabase ​<font inherit/​inherit;;#​cc7832;;​inherit>​extends</​font>​RoomDatabase { +@Database(entities = {Products.class},​ version = 1, exportSchema = false) 
-    ​<font inherit/​inherit;;#​cc7832;;​inherit>​private static final</​font>​String ​<font inherit/​inherit;;#​9876aafont-style:​italic;;;​inherit>​DATABASE_NAME</​font>​<font inherit/​inherit;;#​6a8759;;​inherit>​"​products_db"​</​font><​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​private static</​font>​ProductDatabase ​<font inherit/​inherit;;#​9876aafont-style:​italic;;;​inherit>​INSTANCE</​font><​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​public abstract</​font>​DaoAccess ​<font inherit/​inherit;;#​ffc66d;;​inherit>​daoAccess</​font>​() <font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​public static</​font>​ProductDatabase ​<font inherit/​inherit;;#​ffc66d;;​inherit>​getProductDatabase</​font>​(Context context) { +public abstract class ProductDatabase extends RoomDatabase { 
-   <font inherit/​inherit;;#​cc7832;;​inherit>​if</​font>​(<font inherit/​inherit;;#​9876aafont-style:​italic;;;​inherit>​INSTANCE</​font>​== <font inherit/​inherit;;#​cc7832;;​inherit>​null</​font>​) { + 
-   <font inherit/​inherit;;#​9876aafont-style:​italic;;;​inherit>​INSTANCE</​font>​+    private static final String DATABASE_NAME = "​products_db";​ 
-   ​Room.<font inherit/​inherit;;​inherit;;​inherit>​databaseBuilder</​font>​(context.getApplicationContext()<font inherit/​inherit;;#​cc7832;;​inherit>​,</​font>​ProductDatabase.<font inherit/​inherit;;#​cc7832;;​inherit>​class,</​font><​font inherit/​inherit;;#​9876aafont-style:​italic;;;​inherit>​DATABASE_NAME</​font>​+    ​private static ProductDatabase INSTANCE; 
-   ​.allowMainThreadQueries() +    ​public abstract DaoAccess daoAccess() ; 
-                            .build()<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font>​+ 
-   <font inherit/​inherit;;#​cc7832;;​inherit>​return</​font><​font inherit/​inherit;;#​9876aafont-style:​italic;;;​inherit>​INSTANCE</​font><​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font>​+    ​public static ProductDatabase getProductDatabase(Context context) { 
-    ​<font inherit/​inherit;;#​cc7832;;​inherit>​public static void</​font><​font inherit/​inherit;;#​ffc66d;;​inherit>​destroyInstance</​font>​() { +        if (INSTANCE == null) { 
-   <font inherit/​inherit;;#​9876aafont-style:​italic;;;​inherit>​INSTANCE</​font>​<font inherit/​inherit;;#​cc7832;;​inherit>​null;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font>​}+            INSTANCE = 
 +                    Room.databaseBuilder(context.getApplicationContext(),​ ProductDatabase.class,​ DATABASE_NAME) 
 +                            .allowMainThreadQueries() 
 +                            .build(); 
 +        ​
 +        return INSTANCE; 
 +    ​} 
 + 
 +    public static void destroyInstance() { 
 +        INSTANCE = null; 
 +    ​}
 } }
 </​code>​ </​code>​
 +
 === Sučelje za slanje upita na bazu === === Sučelje za slanje upita na bazu ===
  
-<​code>​<font inherit/​inherit;;#​cc7832;;​inherit>​public interface</​font>​DaoAccess { +<​code>​ 
-    ​<font inherit/​inherit;;#​bbb529;;​inherit>​@Insert</​font><​font inherit/​inherit;;#​bbb529;;​inherit></​font><​font inherit/​inherit;;#​cc7832;;​inherit>​void</​font><​font inherit/​inherit;;#​ffc66d;;​inherit>​insertSingleProduct</​font>​(Products product)<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​bbb529;;​inherit>​@Insert</​font><​font inherit/​inherit;;#​bbb529;;​inherit></​font><​font inherit/​inherit;;#​cc7832;;​inherit>​void</​font><​font inherit/​inherit;;#​ffc66d;;​inherit>​insertMultipleProducts</​font>​(List<​Products>​ productsList)<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​bbb529;;​inherit>​@Query</​font>​(<font inherit/​inherit;;#​6a8759;;​inherit>​"​SELECT * FROM Products WHERE productId = :​productId"​</​font>​+ public interface DaoAccess { 
-    Products ​<font inherit/​inherit;;#​ffc66d;;​inherit>​fetchProductByProductId</​font>​(String productId)<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​bbb529;;​inherit>​@Query</​font>​(<font inherit/​inherit;;#​6a8759;;​inherit>​"​SELECT * FROM Products"​</​font>​+    @Insert 
-    List<​Products> <font inherit/​inherit;;#​ffc66d;;​inherit>​getProducts</​font>​()<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​bbb529;;​inherit>​@Update</​font><​font inherit/​inherit;;#​bbb529;;​inherit></​font><​font inherit/​inherit;;#​cc7832;;​inherit>​void</​font><​font inherit/​inherit;;#​ffc66d;;​inherit>​updateProduct</​font>​(Products product)<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​bbb529;;​inherit>​@Delete</​font><​font inherit/​inherit;;#​bbb529;;​inherit></​font><​font inherit/​inherit;;#​cc7832;;​inherit>​void</​font><​font inherit/​inherit;;#​ffc66d;;​inherit>​deleteProduct</​font>​(Products product)<font inherit/​inherit;;#​cc7832;;​inherit>;</​font>​}+    ​void insertSingleProduct (Products product); 
 +    ​@Insert 
 +    ​void insertMultipleProducts (List<​Products>​ productsList);​ 
 +    ​@Query("​SELECT * FROM Products WHERE productId = :​productId"​) 
 +    Products fetchProductByProductId (String productId); 
 +    ​@Query("​SELECT * FROM Products"​) 
 +    List<​Products>​ getProducts();​ 
 +    ​@Update 
 +    ​void updateProduct (Products product); 
 +    ​@Delete 
 +    ​void deleteProduct (Products product); 
 +}
 </​code>​ </​code>​
 === Bluetooth handler i reprodukcija zapisa === === Bluetooth handler i reprodukcija zapisa ===
  
-<​code><​font inherit/inherit;;#9876aa;;​inherit>​h</​font>​<font inherit/​inherit;;#​cc7832;;​inherit>​new</​font>​Handler() { +<​code>​ 
-    <​font inherit/​inherit;;#​cc7832;;​inherit>​public void</​font><​font inherit/​inherit;;#​ffc66d;;​inherit>​handleMessage</​font>​(android.os.Message msg) { +<font inherit/Arial,​Helvetica,​sans-serif;;inherit;;​inherit>​h = new Handler() { 
-   <font inherit/​inherit;;#​cc7832;;​inherit>​switch</​font>​(msg.<font inherit/​inherit;;#​9876aa;;​inherit>​what</​font>​) { +public void handleMessage(android.os.Message msg) { 
-   <font inherit/​inherit;;#​cc7832;;​inherit>​case</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​RECIEVE_MESSAGE</​font>​+switch (msg.what) { 
-   <font inherit/​inherit;;#​cc7832;;​inherit>​byte</​font>​[] readBuf = (<font inherit/​inherit;;#​cc7832;;​inherit>​byte</​font>​[]) msg.<font inherit/​inherit;;#​9876aa;;​inherit>​obj</​font><​font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font>​String strIncom = <font inherit/​inherit;;#​cc7832;;​inherit>​new</​font>​String(readBuf<font inherit/​inherit;;#​cc7832;;​inherit>​,</​font><​font inherit/​inherit;;#​6897bb;;​inherit>​0</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​,</​font>​msg.<font inherit/​inherit;;#​9876aa;;​inherit>​arg1</​font>​)<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​sb</​font>​.append(strIncom)<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​int</​font>​endOfLineIndex = <font inherit/​inherit;;#​9876aa;;​inherit>​sb</​font>​.indexOf(<font inherit/​inherit;;#​6a8759;;​inherit>​"</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​\r\n</​font><​font inherit/​inherit;;#​6a8759;;​inherit>​"</​font>​)<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​if</​font>​(endOfLineIndex ​> <font inherit/​inherit;;#​6897bb;;​inherit>0</​font>​) { +case RECIEVE_MESSAGE:​ 
-   ​String sbprint = <font inherit/​inherit;;#​9876aa;;​inherit>​sb</​font>​.substring(<font inherit/​inherit;;#​6897bb;;​inherit>​0</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​,</​font>​endOfLineIndex)<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​sb</​font>​.delete(<font inherit/​inherit;;#​6897bb;;​inherit>​0</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​,</​font><​font inherit/​inherit;;#​9876aa;;​inherit>​sb</​font>​.length())<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​808080;;​inherit>​//​Toast.makeText(MainActivity.this,​ "From Arduino: " + sbprint, Toast.LENGTH_SHORT).show();</​font><​font inherit/inherit;;#​808080;;​inherit></​font><​font inherit/inherit;;#cc7832;;​inherit>​if</​font>​(<font inherit/​inherit;;#​9876aa;;​inherit>​mPlayer</​font>​!= <font inherit/​inherit;;#​cc7832;;​inherit>​null</​font>​) { +byte[] readBuf = (byte[]) msg.obj; 
-   <font inherit/​inherit;;#​9876aa;;​inherit>​mPlayer</​font>​.stop()<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font>​+String strIncom = new String(readBuf,​ 0, msg.arg1); 
-   ​Products product = <font inherit/​inherit;;#​9876aa;;​inherit>​db</​font>​.daoAccess().fetchProductByProductId(sbprint)<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​if</​font>​(product == <font inherit/​inherit;;#​cc7832;;​inherit>​null</​font>​){ +sb.append(strIncom);​ 
-   ​Toast.<font inherit/​inherit;;​inherit;;​inherit>​makeText</​font>​(MainActivity.<font inherit/​inherit;;#​cc7832;;​inherit>​this,</​font><​font inherit/​inherit;;#​6a8759;;​inherit>​"Ne postoji proizvod s ID: "</​font>​+ sbprint +<font inherit/​inherit;;#​6a8759;;​inherit>​" u bazi proizvoda!"​</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​,</​font>​Toast.<font inherit/​inherit;;#​9876aafont-style:​italic;;;​inherit>​LENGTH_SHORT</​font>​).show()<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​808080;;​inherit>​// mPlayer = MediaPlayer.create(MainActivity.this,​ R.raw.error_sound);​</​font><​font inherit/​inherit;;#​808080;;​inherit>​// mPlayer.start();​</​font><​font inherit/​inherit;;#​808080;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​mPlayer</​font>​= MediaPlayer.<font inherit/​inherit;;​inherit;;​inherit>​create</​font>​(MainActivity.<font inherit/​inherit;;#​cc7832;;​inherit>​this,</​font>​R.raw.<font inherit/​inherit;;#​9876aafont-style:​italic;;;​inherit>​nemaubazi</​font>​)<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​mPlayer</​font>​.start()<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​productNameTextView</​font>​.setText(<font inherit/​inherit;;#​6a8759;;​inherit>​"​Skeniraj sljedeći proizvod..."​</​font>​)<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​productPriceTextView</​font>​.setText(<font inherit/​inherit;;#​6a8759;;​inherit>​""​</​font>​)<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font>​<font inherit/​inherit;;#​cc7832;;​inherit>​else</​font>​+int endOfLineIndex = sb.indexOf("​\r\n"​);​ 
-   <font inherit/​inherit;;#​9876aa;;​inherit>​productNameTextView</​font>​.setText(product.getProductName())<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​productPriceTextView</​font>​.setText(product.getProductPrice())<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font>​String id = product.getProductId()<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​int</​font>​res = MainActivity.<font inherit/​inherit;;#​cc7832;;​inherit>​this</​font>​.getResources().getIdentifier(<font inherit/​inherit;;#​6a8759;;​inherit>​"​t"​</​font>​+id<font inherit/​inherit;;#​cc7832;;​inherit>​,</​font><​font inherit/​inherit;;#​6a8759;;​inherit>​"​raw"​</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​,</​font>​MainActivity.<font inherit/​inherit;;#​cc7832;;​inherit>​this</​font>​.getPackageName())<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit>​if</​font>​(res != <font inherit/​inherit;;#​6897bb;;​inherit>​0</​font>​) { +if (endOfLineIndex>​ 0) { 
-   <font inherit/​inherit;;#​9876aa;;​inherit>​mPlayer</​font>​= MediaPlayer.<font inherit/​inherit;;​inherit;;​inherit>​create</​font>​(MainActivity.<font inherit/​inherit;;#​cc7832;;​inherit>​this,</​font>​res)<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font><​font inherit/​inherit;;#​9876aa;;​inherit>​mPlayer</​font>​.start()<font inherit/​inherit;;#​cc7832;;​inherit>;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font>​+String sbprint = sb.substring(0,​ endOfLineIndex);​ 
-   ​+sb.delete(0,​ sb.length());​ 
-                +//​Toast.makeText(MainActivity.this,​ "From Arduino: " + sbprint, Toast.LENGTH_SHORT).show();</​font>​ 
-                <​font inherit/​inherit;;#​cc7832;;​inherit>​break;</​font><​font inherit/​inherit;;#​cc7832;;​inherit></​font>​+<font inherit/Arial,​Helvetica,​sans-serif;;​inherit;;​inherit>​if(mPlayer != null) { 
-    }<font inherit/​inherit;;#​cc7832;;​inherit>;</​font>​}<font inherit/​inherit;;#​cc7832;;​inherit>​;</​font></​code>​+mPlayer.stop();​ 
 +
 +Products product = db.daoAccess().fetchProductByProductId(sbprint);​ 
 +if(product == null){ 
 +Toast.makeText(MainActivity.this,​ "Ne postoji proizvod s ID: "+ sbprint +" u bazi proizvoda!",​ Toast.LENGTH_SHORT).show();​ 
 +// mPlayer = MediaPlayer.create(MainActivity.this,​ R.raw.error_sound);​ 
 +// mPlayer.start();​ 
 +mPlayer = MediaPlayer.create(MainActivity.this,​ R.raw.nemaubazi);​ 
 +mPlayer.start();​ 
 +productNameTextView.setText("​Skeniraj sljedeći proizvod..."​);​ 
 +productPriceTextView.setText(""​);​ 
 +} else { 
 +productNameTextView.setText(product.getProductName());​ 
 +productPriceTextView.setText(product.getProductPrice());​ 
 +String id = product.getProductId();​ 
 +int res = MainActivity.this.getResources().getIdentifier("​t"​+id,​ "​raw",​ MainActivity.this.getPackageName());​ 
 +if(res != 0) { 
 +mPlayer = MediaPlayer.create(MainActivity.this,​ res); 
 +mPlayer.start();​ 
 +
 +
 +
 +break; 
 +
 +}; 
 +};</​font></​code>​
  
  
2018/karlo_siladi/projektni_zadatak.txt · Zadnja izmjena: 2023/06/19 18:11 (vanjsko uređivanje)