поставщик услуг - PullRequest
       13

поставщик услуг

0 голосов
/ 01 июля 2010

У меня проблемы с поставщиком контента. Я пытаюсь создать контент-провайдера.

    public static final Uri CONTENT_URI = 
               Uri.parse("content://data/data/one.two/databases");

Это приводит к моей базе данных, так как я хочу извлечь из нее данные и показать их в виде списка. после чего я должен отредактировать манифест, вставив провайдер

<provider android:name="databases789"
    android:grantUriPermissions="true"
    android:enabled="true"
    android:syncable="true" 
    android:authorities="one.two.databases" >
</provider> 
  1. Правильно ли проанализирован мой URI?
  2. Если я расширю свой класс до контент-провайдера, мой файл базы данных будет немного испорчен, есть ли более простой способ?

однако, это показывает ошибку отсутствия существующих баз данных one.two.d.

Ответы [ 2 ]

5 голосов
/ 01 июля 2010

Вы можете начать здесь:

http://developer.android.com/guide/topics/providers/content-providers.html

Несколько конкретных советов, которые помогут:

Во-первых, ваш URI не является путем к файлу базы данных. Он начинается с «content: //», затем имеет полномочия, затем, наконец, имя базы данных (обычно).

Ваш авторитет - это имя, которое вы предоставляете, обычно имя вашего пакета с «провайдером» в конце. Таким образом, ваш может быть one.two.provider.

Тогда вы создадите новый класс в вашем проекте, например MyProvider.java. Следуйте примеру по ссылке, чтобы узнать, что нужно делать у вашего провайдера для фактического предоставления данных.

Наконец, в вашем файле AndroidManifest.xml вы должны сделать что-то вроде этого:

<provider
    android:authorities="one.two.provider"
    android:name="MyProvider"
></provider>

Это заставляет ОС Android подключить ваш авторитет (one.two.provider) к вашему классу.

1 голос
/ 20 сентября 2014

Вы должны указать имя своего контент-провайдера в своем AndroidManifest.xml, а не свое ContentProvider.

<provider android:name="com.app.MyContentProvider"
android:grantUriPermissions="true"
android:enabled="true"
android:syncable="true" 
android:authorities="com.app.authorities.data" >

...