Italian App finita ma...sopresa su Google Market

maxware

Well-Known Member
Licensed User
Longtime User
Ciao raga
dopo due anni ho finalmente ripreso in mano b4x per svilupapre una nuova app.
Una settimana di lavoro e l' app e' pronta ma sorpresa ( alemo per me ) delle sorprese che quando cerco di spararla sul market di google mi segnala che dal mese di Agosto 2018 le versioni minima di API richiesta e' la 26
Siete mica la corrente ???
PS Ovviamente nella sfiga se metto nel manifest minimo 26 non mi va + un piffero :(
 

Star-Dust

Expert
Licensed User
Longtime User
Grazie Star-Dust
mo mi tocca rivedere il tutto ...
No, probabilmente devi chiedere solo qualche autorizzazione e fare qualche modifica minore. Ad esempio:

  • Chiedere autorizzazione per accedere alla memoria intera
  • Se usi le notifiche qualche piccolo aggiustamento
  • Se condividi file (ad esempio passi un file a un altra app - PDF READER / EMAIL / ECC.) anzichè copiare il file nella memoria interna per poi passarlo a un altra App. Devi usare la cartella SHARED che si trova all'interno delle cartelle della tua App e condividere il file da quella cartella con le altre App.

Dalla 23+ queste sono le autorizzazioni sensibili :

CALENDAR
  • READ_CALENDAR
  • WRITE_CALENDAR
CAMERA
  • CAMERA
CONTACTS
  • READ_CONTACTS
  • WRITE_CONTACTS
  • GET_ACCOUNTS
LOCATION
  • ACCESS_FINE_LOCATION
  • ACCESS_COARSE_LOCATION
MICROPHONE
  • RECORD_AUDIO
PHONE
  • READ_PHONE_STATE
  • READ_PHONE_NUMBERS
  • CALL_PHONE
  • ANSWER_PHONE_CALLS
  • READ_CALL_LOG
  • WRITE_CALL_LOG
  • ADD_VOICEMAIL
  • USE_SIP
  • PROCESS_OUTGOING_CALLS
SENSORS
  • BODY_SENSORS
SMS
  • SEND_SMS
  • RECEIVE_SMS
  • READ_SMS
  • RECEIVE_WAP_PUSH
  • RECEIVE_MMS
STORAGE
  • READ_EXTERNAL_STORAGE
  • WRITE_EXTERNAL_STORAGE
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Per i permessi, normalmente l'IDE ti informa quali servano per la tua app e quali di questi siano "pericolosi".
Per vederli, nel Tab "Logs" - tasto "List Permissions" e ti compare questa dialog:
upload_2018-8-2_18-14-33.png



Poi, nel file Manifest devi impostare android:targetSdkVersion="26" (meglio ancora 27 - Android 8 Oreo)
ma devi avere installato il relativo SDK e impostato il path in b4a.
Menu Tools - Configure Paths:
upload_2018-8-2_18-19-9.png


Da qui puoi installare l'SDK, clickando su "Open SDK Manager" e, una volta installata la versione 26 o 27, imposti il percorso del file android.jar, sempre qui.
 

LucaMs

Expert
Licensed User
Longtime User
:):):) Cavolo era finita ..mi tirava giu i dati da Aruba di Gestionale360...mi aggiornava il calendar di google per le attività da svolgere..stavo gia facendo la documentazione sul mio sito...uffaass..bella sorpresa dopo due anni :mad::mad::mad::mad:
Dai, non è niente di complicato, su.

La cosa principale è che devi installare l'SDK - e ti consiglio la versione 27 fin da subito; una volta fatto, devi fare in modo che b4a punti al jar dell'SDK, android.jar, impostando il path come da figura in un mio post precedente.

Poi, se l'app non richiede permessi speciali, hai già finito, compili e via.


P.S. e devi mettere android:targetSdkVersion="27" nel Manifest!
 

maxware

Well-Known Member
Licensed User
Longtime User
Ciaooo raga
siamo a meta strada. ho sistemato tutto ma mi resta il problema sulla libreria mycalendar
mi ritorna il seguente errore
java.lang.SecurityException: Permission Denial: opening provider com.android.providers.calendar.CalendarProvider2 from ProcessRecord{163e6b5 18332:ges360.application/u0a205} (pid=18332, uid=10205) requires android.permission.READ_CALENDAR or android.permission.WRITE_CALENDAR
Ho aggiunto i permessi nel manifest ma non so a sto punto se sono corretti
AddManifestText(

<uses-sdk android:targetSdkVersion="27" />

<supports-screens android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true"/>
<uses-permission android:name="android.permission.READ_CALENDAR"/>
<uses-permission android:name="android.permission.WRITE_CALENDAR"/>
)
SetApplicationAttribute(android:icon, "@drawable/icon")
SetApplicationAttribute(android:label, "$LABEL$")
'End of default text.

SetApplicationAttribute(android:theme, "@style/MyAppTheme")


CreateResource(values, theme.xml,
<resources>
<style name="MyAppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">#0098FF</item>
<item name="colorPrimaryDark">#007CF5</item>
<item name="colorAccent">#FF5522</item>
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/transparent</item>
</style>
</resources>
)
 

Star-Dust

Expert
Licensed User
Longtime User
Aggiungo che se chiedi i permessi di scrittura (WRITE) non hai bisogno di chiedere anche la lettura
 
Top