2015-05-05 9 views
16

Alcune voci di <uses-permission> vengono aggiunte automaticamente a AndroidManifest.xml, in base ai plug-in Cordova che si aggiungono. Tuttavia, ho bisogno dell'autorizzazione <uses-permission android:name="android.permission.INTERNET" />, che non viene aggiunta automaticamente.Come aggiungere tag "uses-permissions" su AndroidManifest.xml per un progetto Cordova?

posso aggiungere che direttamente AndroidManifest.xml, ma otterrà sovrascritto la prossima volta che corro cordova build, e io non voglio avere a continuare a ri-aggiungerlo ...

Sono che ci sia un modo "Cordova" di specificare le autorizzazioni (in config.xml, o altrove), ma io non sto vedendo in their documentation ovunque ...

Quindi, qual è la "via Cordova" di specificare le autorizzazioni degli utenti ?

risposta

29

Come noto AndroidManifest.xml non verrà generato ogni volta che si esegue cordova build. Quando aggiungi/rimuovi un plug-in, verrà modificato di conseguenza. Ma se aggiungi le tue autorizzazioni non verrà rimosso (a meno che non ci sia un conflitto).

Poiché le autorizzazioni sono specifiche per Android (piattaforma), nel tuo caso devi aggiungerlo nel file AndroidManifest.xml.

Anche in plugin.xml di alcun plugin che aggiungono il permesso, come mostrato:

<platform name="android"> 
    <config-file target="AndroidManifest.xml" parent="/manifest"> 
     <uses-permission android:name="android.permission.INTERNET"/> 
    </config-file> 
</platform> 

che dice aggiungere linea usi-permesso di AndroidManifest.xml di file al momento installazione di plugin. Ma non puoi menzionarlo nel file config.xml.

Inoltre, non dimenticare di inserire questo attributo nell'elemento del widget radice come @hiddentao ha detto in un commento.

plugin.xml

<widget 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    ...> 
+0

Non mi sono reso conto che alcune modifiche manuali a AndroidManifest.xml rimangono dopo una compilazione (poiché la maggior parte delle modifiche manuali viene stompata). Pensavo di aver provato manualmente aggiungendo un tag "usi-permessi", ma suppongo di no ... Credo che dovrei testare un po 'meglio prima di postare le domande :) – Troy

+13

Per far funzionare tutto questo ho dovuto anche aggiungere 'xmlns: android = "http://schemas.android.com/apk/res/android" 'al tag' widget' root nel mio config.xml – hiddentao

+1

Sono relativamente nuovo alla scena ibrida dev, ma non sono la 'config- file' e 'uses-permission' elementi forniti dal plugin' cordova-custom-config'? Non ho potuto farlo funzionare fino a quando non ho aggiunto quel plugin (come accennato nella risposta di Dorad) e seguito il suo setup, che include la definizione 'xmlns: android' che hiddentai menziona nel commento sopra ... Per me la risposta selezionata qui sembra incompleto.:/ – ZaLiTHkA

-1

Aggiungere manualmente sotto tag config-file

<config-file target="AndroidManifest.xml" parent="/manifest"> 
    <uses-permission android:name="android.permission.INTERNET"/> 
</config-file> 
+0

mi sta dando errore –

8

Si può aggiungere questo plugin (Git). Ti fa in grado di definire specifici della piattaforma Configurazioni (permessi troppo) sotto file config.xml nel modo seguente:

<platform name="android"> 
    <config-file target="AndroidManifest.xml" parent="/*"> 
     <uses-permission android:name="android.permission.INTERNET" /> 
     <!--<uses-permission android:name="android.permission.NETWORK_ACCESS" /> 
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />--> 
    </config-file> 
</platform> 

Inoltre, non dimenticare di mettere questo attributo nell'elemento widget di radice come ha detto @hiddentao in un commento.

xmlns:android="http://schemas.android.com/apk/res/android" 
Problemi correlati