小编nsL*_*nsL的帖子

如果用户选择"从不"选项,则为Android启用位置服务

如果用户之前选择了"从不"选项,是否有任何方法可以再次为应用程序(或至少显示对话框)提供位置服务?

在此输入图像描述

我在代码中找不到任何方法再次显示它,因为我总是在onResult(..)回调中得到LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:

    @Override
    public void onResult(LocationSettingsResult locationSettingsResult) {
        final Status status = locationSettingsResult.getStatus();
        switch (status.getStatusCode()) {
            case LocationSettingsStatusCodes.SUCCESS:
                Log.i(TAG, "All location settings are satisfied.");
//                        startLocationUpdates();
                break;
            case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
                Log.i(TAG, "Location settings are not satisfied. Show the user a dialog to" +
                        "upgrade location settings ");

                try {
                    // Show the dialog by calling startResolutionForResult(), and check the result
                    // in onActivityResult().
                    status.startResolutionForResult(activity, REQUEST_CHECK_SETTINGS);

                } catch (IntentSender.SendIntentException e) {
                    Log.i(TAG, "PendingIntent unable to execute request.");
                }
                break;
            case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:
                Log.i(TAG, …
Run Code Online (Sandbox Code Playgroud)

android location location-services

12
推荐指数
1
解决办法
3073
查看次数

在CollapsingToolbarLayout/AppBarLayout中禁用垂直滚动

我想在nestedscrollview中发生滚动/触摸事件时,只在CollapsingToolbarLayout/AppBarLayout上进行垂直滚动(这是有效的),但是如果用户试图直接滚动CollapsingToolbarLayout/AppBarLayout,它应该不起作用.我需要这个,因为那里的滚动/触摸事件搞乱了我的recyclerview滚动事件.

我有这个结构:

CoordinatorLayout

-- AppBarLayout

---- CollapsingToolbarLayout (scrollflags: scroll, exitUntilCollapsed, snap)

------ Toolbar (CollapseMode: pin)

------ RecyclerView (Horizontal, CollapseMode: pin)

----- /CollapsingToolbarLayout

-- /AppBarLayout

-- NestedScrollView (Behaviour: appbar_scrolling_view_behavior)

-- /NestedScrollView

/ CoordinatorLayout
Run Code Online (Sandbox Code Playgroud)

我尝试为CollapsingToolbarLayout/AppBarLayout覆盖onTouch()和onInterceptTouchEvent(),但它会一直拦截触摸事件/滚动.

android android-recyclerview android-collapsingtoolbarlayout

10
推荐指数
2
解决办法
7163
查看次数

使用谷歌条码扫描器(Vision)编码的数据矩阵的未知编码

我正在尝试使用Vision Barcode Scanner的实现扫描一些Data Matrix条形码,但我在编码的条码扫描器上遇到了问题.

我正在使用:

int codesDetected = Barcode.ALL_FORMATS;
Run Code Online (Sandbox Code Playgroud)

但它仍会返回那些的未知编码.

另一方面,Google Goggles应用程序正确扫描它们,对于使用zxing的其他一些条形码阅读器也是如此.

条形码示例:

在此输入图像描述 在此输入图像描述

如果能解决这个问题,我愿意转移到Zxing,但我想知道我的实现中是否缺少某些东西(我采用了Vision示例应用程序)这些类型的条形码(数据矩阵编码).

谢谢

android barcode datamatrix android-vision

9
推荐指数
0
解决办法
1347
查看次数

Kotlin 用子类型覆盖 fun

我在继承包含基类型的方法/乐趣的接口时遇到问题,我想将其重写为实现它的类中的子类型。

到目前为止我已经有了界面

interface IModel {
    fun convert(dataModel: BaseDataModel)
}
Run Code Online (Sandbox Code Playgroud)

以及实现它的类:

class SettingsModel: IModel {
    override fun convert(dataModel: BaseDataModel) {
        // Conversion of models here

    }
}
Run Code Online (Sandbox Code Playgroud)

我还有 SettingsDataModel 它是:

class SettingsDataModel: BaseDataModel() {
}
Run Code Online (Sandbox Code Playgroud)

我想要实现的是对于每个实现 IModel 的类/模型,能够获取特定的 DataModel,例如:

class SettingsModel: IModel {
    override fun convert(dataModel: SettingsDataModel) {
        // Conversion of models here

    }
}
Run Code Online (Sandbox Code Playgroud)

无需投射它。我想我不能,因为它修改了乐趣的签名,使其不是真正的覆盖。我尝试使用泛型和泛型约束,但没有运气:

interface IModel {
    fun <T :BaseDataModel>convert(dataModel: T)
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用。有解决这个问题的方法吗?

generics inheritance kotlin kotlin-generics

5
推荐指数
1
解决办法
4204
查看次数

如何以编程方式检查“删除动画”辅助功能设置的状态

我正在尝试检查Remove animations辅助功能设置的状态,以便在我的应用程序上启用/禁用某些 UI 和 GIF 动画,但我没有看到任何公开的方法来AccessibilityManager访问此值:

在此输入图像描述

有什么简单的方法可以获取这个值吗?即使有反射

settings android accessibility

4
推荐指数
1
解决办法
1619
查看次数