Autore Topic: Accedere ad un content provider da 2 applicazioni diverse  (Letto 533 volte)

Offline omix

  • Nuovo arrivato
  • *
  • Post: 23
  • Respect: 0
    • Mostra profilo
Accedere ad un content provider da 2 applicazioni diverse
« il: 29 Settembre 2011, 16:49:46 CEST »
0
Ciao a tutti,

ho sviluppato un'applicazione che crea  un ContentProvider e lo utilizza. Inserimenti, selezioni, aggiornamenti e cancellazioni funzionano bene da questa applicazione. Per rendere il contentProvider univoco ho utilizzato la stringa:
   public static final String AUTHORITY = "com.myapp.provider.MyInfo";
Nel file Manifest.xml ho fatto riferimento allo stesso con:
      <provider android:name="com.myapp.provider.MyInfoProvider" android:authorities="com.myapp.provider.MyInfo" />
La classe che estende ContentProvider si chiama MyInfoProvider e si trova nel package com.myapp.provider

Oggi ho creato un'altra applicazione, che dovrebbe poter accedere allo stesso ContentProvider per fare dei test. Sottolineo che sono 2 applicazioni diverse, non 2 Activity diverse. Purtroppo, l'accesso al contentProvider non funziona, o meglio, non riesco nemmeno ad installare l'applicazione.
Questa nuova applicazione è composta solo da 2 package, uno è il copia/incolla di com.myapp.provider, l'altro  si chiama com.myapp.test e contiene solo una classe, Main.java che tenta l'accesso al contentprovider.
Nel manifest della nuova pplicazione ho aggiunto la stessa riga scritta sopra, ovvero:
      <provider android:name="com.myapp.provider.MyInfoProvider" android:authorities="com.myapp.provider.MyInfo" />
Prima della dichiarazione di application ho anche aggiunto
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
   <uses-permission android:name="android.permission.READ_PHONE_STATE"/>

L'errore che mi viene dato è:
W/ActivityManager(   61): No content provider found for:
W/ActivityManager(   61): No content provider found for:
D/PackageParser(   61): Scanning package: /data/app/vmdl1197275047.tmp
D/PackageManager(   61): Scanning package com.myapp.test
W/PackageManager(   61): Can't install because provider name com.myapp.provider.MyInfo (in package com.myapp.test) is already used by com.myapp.android

com.myapp.android è il package dove si trovano tutte le activity della 1a applicaizone.
(leggendo i log sembrava richiedermeli). Cosa va' cambiato?
Grazie mille

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
R: Accedere ad un content provider da 2 applicazioni diverse
« Risposta #1 il: 29 Settembre 2011, 17:58:19 CEST »
0
Tu nella nuova appena il provider non devi definirlo nuovamente ma solo richiamarlo.

Inviato dal mio HTC Desire usando Tapatalk

Offline omix

  • Nuovo arrivato
  • *
  • Post: 23
  • Respect: 0
    • Mostra profilo
Re:Accedere ad un content provider da 2 applicazioni diverse
« Risposta #2 il: 29 Settembre 2011, 18:13:40 CEST »
0
Cavolo, hai ragione!
Non so perchè, ero convinto che il tag provider fosse necessario in ogni applicazoine! Ora funziona, grazie mille!!!