我正在尝试在我的应用中实现切片。我已经像下面这样声明了SliceProvider
:
<provider
android:name=".integration.slices.CustomSliceProvider"
android:authorities="com.example"
android:exported="true"
android:grantUriPermissions="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.app.slice.category.SLICE" />
<data
android:host="*example.com"
android:pathPrefix="/.*"
android:scheme="https" />
</intent-filter>
</provider>
通过<data
字段通知host
。现在来自CustomSliceProvider
类:
@Override
public Slice onBindSlice(Uri sliceUri) {
if (getContext() == null || sliceUri == null || sliceUri.getPath() == null)
return null;
Log.i("CustomSliceProvider", "onBindSlice: " + sliceUri);
...
@Override
public @NonNull
Uri onMapIntentToUri(Intent intent) {
Log.i("CustomSliceProvider", "onMapIntentToUri: " + intent);
...
content://
Uri
工作正常(我的Slice
显示在SliceViewer
中)
adb shell am start -a android.intent.action.VIEW -d slice-content://com.example/smth
但是我已经声明了https://
个网站(另外吗?),并且在致电
Log
adb shell am start -a android.intent.action.VIEW -d slice-https://example.com/smth
我假设应该进行onMapIntentToUri
方法调用,但是没有发生。是因为我没有配置AppIndexing吗?我可以在未启用AppIndexing的情况下将Slice
与https://
的Uris一起使用吗? (似乎是滥用行为的领域,但也许...?)