Autore Topic: uses-feature inserite in automatico  (Letto 685 volte)

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
uses-feature inserite in automatico
« il: 14 Settembre 2011, 12:18:52 CEST »
0
Ho notato che una mia applicazione ha tra le funzioni richieste "android.hardware.telephony" tanto che su alcuni dispositivi che non hanno il modulo telefonico questa risulta essere non compatibile.

Il mio AndroidManifest non contiene alcun uses-feature, quindi non riesco a capire come mai è stata inserita questa limitazione (se proprio devo trovare una giustificazione penso che sia l'utilizzo di alcuni permessi (PROCESS_OUTGOING_CALLS, READ_PHONE_STATE) o di alcuni broadcast (NEW_OUTGOING_CALL)).

Il punto è che vorrei che la mia applicazione funzionasse in dispositivi senza il modulo telefonico (semplicemente alcune feature dell'applicazione, in questi casi, non potranno essere selezionate/usate).

La prima domanda è quindi: Come mai mi ha messo in automatico il limite android.hardware.telephony senza che io abbia definito lo uses-feature relativo?

Leggendo la documentazione scopro che è anche possibile definire un android:required="false" nel caso in cui il modulo è preferibile che ci sia ma che non è obbligatorio. Sarebbe perfettamente il mio caso, ma appena provo ad inserire nel manifest questa riga:
Codice (XML): [Seleziona]
<uses-feature android:name="android.hardware.telephony" android:required="false"></uses-feature>mi viene segnalato il seguente errore:
Codice: [Seleziona]
No resource identifier found for attribute 'required' in package 'android'
Consigli?

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:uses-feature inserite in automatico
« Risposta #1 il: 14 Settembre 2011, 17:10:39 CEST »
0
Citazione
La prima domanda è quindi: Come mai mi ha messo in automatico il limite android.hardware.telephony senza che io abbia definito lo uses-feature relativo?

Come esattamente supponevi tu è per via di alcuni permessi, che filtrano in maniera implicita le features, nel tuo caso : PROCESS_OUTGOING_CALLS

Per quanto riguarda la seconda, bhè in effetti, in base alla documentazione, è permesso definire android:required (api level 5 o superiore)
Non saprei proprio perchè non lo trova  o_O

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:uses-feature inserite in automatico
« Risposta #2 il: 15 Settembre 2011, 10:16:34 CEST »
0
Per quanto riguarda la seconda, bhè in effetti, in base alla documentazione, è permesso definire android:required (api level 5 o superiore)
Non saprei proprio perchè non lo trova  o_O

Uhm... in questa pagina risulta:
Codice: [Seleziona]
introduced in:
API Level 4
ma se è vero quello che dici è proprio quello il problema! (io compilo in api level 4!)

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:uses-feature inserite in automatico
« Risposta #3 il: 15 Settembre 2011, 18:40:39 CEST »
0
Già le <uses-features> sono nelle API level 4, ma l'attributo android:required è stato introdotto nelle API level 5, almeno da quello che dice la doc.
Citazione da: Android | Dev Guide
The feature declaration can include an android:required=["true" | "false"] attribute (if you are compiling against API level 5 or higher)...

Citazione da: Android | Dev Guide
In general, if your application is designed to run on Android 1.6 and earlier versions, the android:required attribute is not available in the API and Android Market assumes that any and all <uses-feature> declarations are required.

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:uses-feature inserite in automatico
« Risposta #4 il: 15 Settembre 2011, 19:19:21 CEST »
0
ma vale davvero la pena compilare per 1.6? son sicuramente di piu quelli che hanno android e non la parte telefonica che quelli che hanno la 1.6....
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:uses-feature inserite in automatico
« Risposta #5 il: 15 Settembre 2011, 19:32:02 CEST »
0
ma vale davvero la pena compilare per 1.6? son sicuramente di piu quelli che hanno android e non la parte telefonica che quelli che hanno la 1.6....

Beh io la penso come te però poi secondo me bisognerebbe vedere i numeri del market. La mia app ad esempio ha circa 600 installazioni attive su android 1.6, quindi neanche così poche...

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:uses-feature inserite in automatico
« Risposta #6 il: 15 Settembre 2011, 20:13:04 CEST »
0
Già le <uses-features> sono nelle API level 4, ma l'attributo android:required è stato introdotto nelle API level 5, almeno da quello che dice la doc.

Non avevo fatto caso a questa nota... quindi penso che il problema sia solo quello.

Beh io la penso come te però poi secondo me bisognerebbe vedere i numeri del market. La mia app ad esempio ha circa 600 installazioni attive su android 1.6, quindi neanche così poche...

Ormai quelli non contano più (o meglio, è possibile soddisfare tutti): penso che rilascerò due apk contemporaneamente: uno compatibile solo con api 1.6 che quindi funzionerà a tutti quelli che hanno il modulo telefonico ed un'altra con api >1.6 con il required messo a false che funzionerà con tutti.

Con questa scusa provo anche sta funzione del market con i doppi apk caricati e vedo come funzionano!!!

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:uses-feature inserite in automatico
« Risposta #7 il: 15 Settembre 2011, 20:16:15 CEST »
0
Ormai quelli non contano più (o meglio, è possibile soddisfare tutti)

Sono d'accordo con te ma se gli utenti sono anche potenziali clienti dovresti sviluppare applicazioni che possano girare sul maggior numero di dispositivi possibili :)