小编Dom*_*min的帖子

尝试设置地理围栏时 GEOFENCE_NOT_AVAIBLE(代码 1000)

该问题发生在比 Oreo 更早的 Android 以及 Oreo 和更新版本上。

即使完成了以下步骤,我也无法让地理围栏工作:

  • 定位服务设置为高精度
  • 已启用 Wi-Fi 和移动数据
  • 应用程序被授予位置权限
  • Google 服务已添加到项目中
  • Google 服务和 Play 商店是最新的并已安装在设备上
  • 禁用电池优化(测试目的)

我用下面的代码,如果检查GPS_PROVIDERNETWORK_PROVIDER启用:

@Override
protected void onResume() {
    super.onResume();
    LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)){
        Log.e("Provider", "Provider is not avaible");
    } else if (manager.isProviderEnabled(LocationManager.GPS_PROVIDER)){
        Log.v("Provider", "GPS Provider is avaible");
    }
    if (!manager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){
        Log.e("Network Provider", "Provider is not avaible");
    } else if (manager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){
        Log.v("Network Provider", "provider is avaible");
    }

}
Run Code Online (Sandbox Code Playgroud)

以上两个都给了我积极的结果,所以问题不可能在这里。

确切的错误:

电子/地理围栏:com.google.android.gms.common.api.ApiException:1000:

mGeofencingClient在开头设置 onCreate: …

java android geolocation android-geofence

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

数据绑定 - ObservableField<String> 不更新视图

我有一个简单的应用程序——Button它从 rest api 中获取数据以及TextView显示此数据的位置。我正在使用MVVM架构模式。当ViewModel收到带有获取数据的回调时,我将其设置为 ObservableField。不幸的是它不会更新屏幕上的文本,但是每当我旋转设备数据时都会在屏幕上更新。

好了,废话不多说,我给你看代码:

视图模型

public class MyViewModel extends ViewModel{

private ObservableField<String> name = new ObservableField<>();

@Override
public void onListReceived(String username) {
    super.onListReceived(list);
    name.set(username);
}

public String getName() {
    return name.get();
}}
Run Code Online (Sandbox Code Playgroud)

并在 XML 中:

<TextView
        android:id="@+id/textview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@{viewModel.name}"
        tools:text="some text"/>
Run Code Online (Sandbox Code Playgroud)

据我所知,我认为android:text="@{viewModel.name}"在 ' @' 和 ' {'之间的这一行中它应该是 '=' ,但是当我添加它时,清理项目并重建它,我得到了一个无法解决的错误DataBindingComponent

有任何想法吗?
提前致谢!

android android-databinding

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

自定义视图 - 由线条绘制的圆角矩形的角

我正在使用自定义视图,我想使用path.lineTo()path.arcTo()方法构建一个圆角矩形。
所以,我想要得到的矩形:

在此输入图像描述

通常我用这段代码来绘制它:

    RectF backReftf = new RectF();
    Path path = new Path();
    int width = getWidth();
    int height = getHeight();
    float curve = (float) (0.1 *  height);
    RectF backReftf = new RectF();
    backReftf.left = 0;
    backReftf.top = 0;
    backReftf.right = width;
    backReftf.bottom = height;
    path.addRoundRect(backReftf, curve, curve, Path.Direction.CW);
    canvas.drawPath(path, paint);
Run Code Online (Sandbox Code Playgroud)

但我想用path.lineTo()和来画这个path.arcTo()

根据文件arcTo()

将指定的圆弧作为新轮廓附加到路径。如果路径的起点与路径当前的最后一个点不同,则会添加自动 lineTo() 以将当前轮廓连接到圆弧的起点。但是,如果路径为空,则我们使用弧的第一个点调用 moveTo()。

所以理论上我的弧应该从那里开始,也就是线条结束的地方,所以如果我画一条线(矩形的左侧):

    float curve = (float) (0.1 *  height);
    path.moveTo(0,0);
    path.lineTo(0, height - curve); …
Run Code Online (Sandbox Code Playgroud)

android custom-view android-custom-view android-view

3
推荐指数
1
解决办法
1917
查看次数

打电话超级投掷"超级不是表达"

我从这里开始学习从Google指南实施MVVM:https: //codelabs.developers.google.com/codelabs/android-room-with-a-view/#8 (特别是对我感兴趣的页面发布链接) .
由于我理解在Java中实现它,我决定切换到Kotlin.在类扩展中初始化构造函数时,AndroidViewModel我需要调用super它,它会抛出以下错误:

"super"不是表达,它只能用在点的左侧('.')"

当我用Google搜索并发现类似的主题但我根本不理解它,所以我没有解决我的问题.这是我的ViewModel课程代码:

 class NotesViewModel private constructor(application: Application) : AndroidViewModel(application){

    var mRepository: NotesRepository? = null
    var mAllNotes: LiveData<List<Notes>>? = null

    init {
        super(application) // <-- here it throws me an error
        mRepository = NotesRepository(application)
        mAllNotes = mRepository!!.getAllWords()
    }

    fun getAllNotes(): LiveData<List<Notes>>{
        return mAllNotes!!
    }

    fun insert(notes: Notes){
        mRepository!!.insert(notes)
    }

}
Run Code Online (Sandbox Code Playgroud)

那么,我该如何正确调用super,构造一个构造函数呢?这是这个类的正确java代码:

public class WordViewModel extends AndroidViewModel {

  private WordRepository mRepository;
    private LiveData<List<Word>> mAllWords;

    public WordViewModel(Application application) …
Run Code Online (Sandbox Code Playgroud)

java android mvvm kotlin android-livedata

0
推荐指数
1
解决办法
433
查看次数