安卓模拟定位mockLocation,闪退?

在开发一款模拟定位的Android应用时,遇到GPS模拟定位闪退的问题。当使用GPS作为定位提供者时,operateTestProvider()方法未能成功;而使用Network提供者时,虽然operateTestProvider()成功,但尝试推送模拟位置时失败。已确认具备相关权限,问题依然存在。源码已上传至码云仓库,寻求解决方案。
摘要由CSDN通过智能技术生成

最近在写一个模拟手机定位信息的app,但是遇到一些问题,一打开模拟定位,app就闪退,再次分享给大家,看看大家有没有妙计帮忙指点迷津。

问题点:

  1. 当provider为GPS时,方法 operateTestProvider();没成功。。
  2. 当provider为Network时,方法operateTestProvider();成功,但是mock.pushLocation(Double.parseDouble(latitude.getText().toString()),
    Double.parseDouble(longitude.getText().toString()), providerName, locationManager);
    不成功,

纠结了很久不知道为什么。权限也有。
码云仓库如下:模拟打卡源代码
源码如下:

package com.example.myapplication1;

import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.location.LocationProvider;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;

import java.util.ArrayList;
import java.util.List;


public class MainActivity extends AppCompatActivity {
   
    MockLocationProvider mock;
    Button startLocation, stopLocation;
    EditText longitude, latitude;
    TextView mockStatus;
    String providerName = LocationManager.GPS_PROVIDER;
    boolean hasAddTestProvider = false;
    boolean canMockPosition = false;
    private static final String TAG = "GPS_Test";
    private LocationManager locationManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        longitude = findViewById(R.id.editText);
        latitude = findViewById(R.id.editText2);
        startLocation = findViewById(R.id.button);
        stopLocation = findViewById(R.id.button2);
        mockStatus = findViewById(R.id.textView3);

        startLocation.setOnClickListener(view -> {
   
            startLocation.setEnabled(false);
            stopLocation.setEnabled(true);
            if (canMockPosition
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值