Androidban hogy szokás megoldani a deprecated dolgokat?
A kérdés nem túl beszédes, de kicsit konkrétabban:
Most kezdtem az Android fejlesztést, és gyakorolgatás közben most a Kamerát használom.
Itt kiabál nekem az AndroidStudio, hogy a sima Camera deprecated, és API 21-től már a Camera2-t kell használni.
Nekem itthon csak egy 4.4-es és egy 4.2-es telóm van tesztelni (szimulátorban meg nokomment a kamera... :D )
Hogyan oldják meg ezt az éles váltást a gyakorlatban, ha egyszer API21 alatt a Camera2 nem működik, API21 fölött pedig a sima Camera?
Tehát hogyan lehet olyan alkalmazást írni, ami minden droid tipuson biztos elfut?
Gondolom nem kétszer fejlesztik le ugyanazt az alkalmazást a régi és az új verziókra (vagy mégis?!)?
Az igazán értelmes megoldás az szokott lenni, hogy készítenek egy interfészt:
interface ICamera {
.. //Ebben leírnak minden olyan dolgot, ami a kamera kezeléséhez szükséges lehet
.. Image takePhoto();
.. Video recordVideo();
}
A következő lépésben készítünk burkoló osztályokat, amik az ICamera interfészt ráillesztik a Camera és a Camera2-re:
class MyCamera implements ICamera {
.. //Ez hozzáilleszti az interfészünkhöz a Camera-t.
}
class MyCamera2 implements ICamera {
.. //Ez pedig a Camera2-t.
}
És kell még valami, ami operációs rendszertől függően ad nekünk a kettő közül valamit:
class CameraManager {
.. public static ICamera getCamera() {...}
}
És itt jön a tuti: Innentől kezdve, hogy kamerázgassunk, egyáltalán nem kell foglalkozni azzal, hogy melyik kameránk van - ugyanis nem ezeket az osztályokat fogjuk használni, hanem a mi interfészünket:
ICamera c = CameraManager.getCamera();
És már használhatjuk is:
c.takePhoto();
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!