Как реализовать индексацию приложений с помощью библиотечного проекта?
Я пытаюсь реализовать индексацию приложений для одного из моих приложений, но я не совсем уверен, что я должен вернуть как appUri
для индексации приложения Action
,
Допустим, у меня есть имя пакета com.example.myapp
и webUri
http://example.com/some/path
,
Насколько я понимаю, appUri
будет обычно com.example.myapp/http/example.com/some/path
в этом случае правильно?
Теперь введите проект библиотеки, который использует мое приложение, и где существует индексированная активность. Назовем проект библиотеки com.example.mylibrary
и индексированная активность MyActivity
,
Если я хочу начать деятельность с помощью ADB, я бы использовал
adb shell am start -W -a android.intent.action.VIEW -d "http://example.com/some/path" com.example.myapp/com.example.mylibrary.MyActivity
Итак, мой вопрос - что должно appUri
для индексации приложения Action
быть в этом случае? На это вообще влияет тот факт, что деятельность в рамках библиотечного проекта?
1 ответ
В общем, вы можете собрать Action с помощью Action.Builder, предоставляемого библиотекой. В качестве URI вам необходимо предоставить связанный URI. Поэтому, если вы хотите проиндексировать View Action, вы должны указать URI продукта, который был просмотрен.
Uri.Builder builder = new Uri.Builder();
String uriStr = builder
.scheme("http")
.authority("example.com")
.appendPath("some/path").build().toString();
Action action = new Action.Builder(Action.Builder.VIEW_ACTION)
.setObject("productName", uriStr)
.build();
Для получения более подробной информации вы можете посмотреть документацию действий и их пример приложения.
Тестировать:
adb shell am start -a android.intent.action.VIEW -d "{URL}" {package name}
где {имя пакета} = com.example.myapp и URL = http://example.com/some/path
В конце ваша активность в библиотеке должна иметь фильтр намерений, который может обрабатывать ваш URI http://example.com/some/path