Accéder à un fournisseur de contenu personnalisé à partir d'une application différente
Bonjour, j'ai créé une application android qui utilise un fournisseur de contenu personnalisé nommé CustomCP,
elle implémente toutes les méthodes et tout fonctionne bien, tout en gérant les données à l'intérieur de l'application,
mais quand j'essaye d'y accéder depuis une autre application, je reçois un message d'erreur " impossible de trouver
fournisseur info pour com.exemple.customcp.
Je l'ai déclaré à mon fournisseur de contenu dans le fichier manifeste de la première application que
<provider android:name="com.example.CustomCP" android:authorities="com.example.customcp"/>
J'essaie d'appeler le fournisseur dans le deuxième du démarrage de l'application d'activité
public class app2 extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Uri kUri = Uri.parse("content://com.example.customcp/key");
Cursor c = managedQuery(kUri, null, null, null, null);
}
}
Donc la question est simple , est-il possible d'accéder à un contenu personnalisé fournisseur à partir de plusieurs applications?
source d'informationauteur tgAndroid
Vous devez vous connecter pour publier un commentaire.
Oui, il est possible d'accéder à un contenu personnalisé fournisseur à partir d'une autre application. À l'aide de votre terminologie que nous allons appeler le fournisseur de contenu CustomCP et l'application d'autres AppA. (AppA est celui qui veut accéder à l'opérateur). Cette approche est prouvée à travailler:
Préciser le contenu visé fournisseur (CustomCP) à partir de l'intérieur de l'AppA à l'aide d'un ContentProviderClient:
Uri yourURI = Uri.parse("content://com.example.customcp/YourDatabase");
ContentProviderClient yourCR = getContentResolver().acquireContentProviderClient(yourURI);
D'accès le fournisseur de contenu comme vous le feriez normalement à partir de l'App A. Par exemple:
yourCursor = yourCR.query(yourURI, null, null, null, null);
Remarque: vous devez placer le code dans un bloc try/catch ou un "throws RemoteException" depuis le fournisseur n'est pas en Application A.
CustomCP du Manifeste doit spécifier le fournisseur, inclure les autorisations de permis (p. ex., lecture et/ou écriture), et le fournisseur doivent être exportées. Voici un exemple:
dans le fichier de manifeste, assurez-vous que votre
est à l'intérieur de votre
espère que ça aide
Après la création du fournisseur de contenu , indiquez le fournisseur de contenu dans le fichier manifeste. Vous pouvez mentionner fournisseur de contenu à l'aide de la balise. À l'intérieur du fournisseur de balise n'oubliez pas de mentionner le nom et les autorités attributs. Cette déclaration devrait être ..
Ici ce que vous mentionnez dans les instances de l'attribut qui doit être match lorsque vous essayez d'obtenir les données à partir du fournisseur.