Keresés

Új hozzászólás Aktív témák

  • torreadorz

    csendes tag

    válasz Szatyor95 #55 üzenetére

    "Viszont ha jól sejtem, erre az alkalmazást is fel kellene készíteni.Ha nincs igazam, akkor nyugodtan szólj, programozási tudásom kimerül a Pascal alapjainá"

    Nem kell felkészíteni, pont ez a lényeg. Megpróbálom úgy elmagyarázni hogy kevés programozási tapasztalattal is megértsd.
    Ha pl. SD kártyát akarsz használni, akkor kötelezően le kell kezelned hogy az nincs csatlakoztatva. Ez teljesen független az engedélyektől, amikor egy alkalmazás irni/olvasni akar onnan akkor előtte le kell kérnie az sd kártya állapotát mert nem tudhatod hogy pl. a felhasználó épp most vette ki. Ez már igy van kb. 1.6-os androidtól, szóval ebben nincs semmi új.

    Tehát van egy beépített függvény, nevezzük isExternalStorageAvailable()-nak ami visszaad egy igaz/hamis értéket attól függen hogy van sd kártya bedugva vagy nincs. Ha hamis, akkor szépen kijelzed a felhasználónak hogy nem lehet menteni mert nincs sd kártya csatlakoztatva ha meg igaz, akkor elmented amit akarsz. Mindenki happy. Ez a normál müködés.

    A probléma ott van, hogyha te megtagadod az sd kártya irása engedélyt, akkor amikor a program meghívja az isExternalStorageAvailable() függvényt (ami az android core-ban van és tök független a programtól), akkor az ahelyett hogy visszaadna egy hamis értéket, egy nem dokumentált kivételt dob.
    Mivel nem dokumentált kivételt dob (nem is dobhatna kivételt), a program illetve a programozó ezt nem tudja lekezelni, következményképp a program elszáll. _Ez a jelenlegi, nem jó viselkedés_

    Ehelyett az android (illetve a google) azt is csinálhatná, hogyha nincs engedély, akkor az isExternalStorageAvailable() függvény egyszerüen visszatér egy hamis értékkel ahogy várnánk. Hisz engedély hiányában az sd kártya nem elérhető. És mivel az alkalmazás a fentiek miatt amúgy is igaz/hamis értéket vár, ez nem okozna gondot, szépen kijelezné hogy az sd kártya nem elérhető nem lehet menteni stb.
    Mindenki boldog. _Ez lenne az elvárt viselkedés_

    Tehát a lényeg, az alkalmazásokhoz hozzá sem kéne nyúlni egyedül az android rendszerben kéne azt megcsinálni hogyha nincs engedély akkor az ismeretlen, nem dokumentált kivételek helyett csinálja azt amit elvárnánk. Ha nem elérhető az sd kártya (tökmindegy hogy nincs csatlakoztatva vagy nincs engedély), akkor az sd kártya elérhetőségét vizsgáló függvény adjon vissza hamis értéket.

Új hozzászólás Aktív témák