为了账号安全,请及时绑定邮箱和手机立即绑定

如何让我的位置类通过短信发送坐标?

如何让我的位置类通过短信发送坐标?

皈依舞 2022-09-14 10:21:40
我在通过短信发送位置坐标时遇到困难。我无法正确构图发送的短信。这是我的顶级代码:private static final int REQUEST_CODE = 1000;FusedLocationProviderClient fusedLocationProviderClient;LocationRequest locationRequest;LocationCallback locationCallback;@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {    super.onRequestPermissionsResult(requestCode, permissions, grantResults);    switch (requestCode)    {        case REQUEST_CODE:        {            if(grantResults.length > 0)            {                if(grantResults[0] == PackageManager.PERMISSION_GRANTED)                {                }                else if(grantResults[0] == PackageManager.PERMISSION_DENIED)                {                }            }        }    }}在我的“创建”中,双符号读取了意外的令牌错误。我也认为我需要在那里添加一个私人空白,但不知道哪种与发送短信相对应。if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_FINE_LOCATION))    {        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_CODE);    }    else    {        buildLocationRequest();        buildLocationCallback();        fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);        {        if (ActivityCompat.checkSelfPermission(FullscreenActivity.this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED)            && ActivityCompat.checkSelfPermission(FullscreenActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION);            ActivityCompat.requestPermissions(FullscreenActivity.this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_CODE);        return;    }    fusedLocationProviderClient.requestLocationUpdates(locationRequest, locationCallback, Looper.myLooper());    }在 onCreate 部分之后,我遇到了最多困难的地方,特别是位置当前位置字符串中的位置方法,该字符串说参数从未使用过,并且我也得到了一个错误与 getLongitude 关闭。它包含一个带有分号的错误,我在那里添加的任何内容都不起作用,例如a )。我不知道我是否正确执行此位置/短信类。
查看完整描述

1 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

在构建后添加 getLastLocation() 方法位置回调


private void getLastLocation() {

    try {

        fusedLocationProviderClient.getLastLocation()

                .addOnCompleteListener(new OnCompleteListener<Location>() {

                    @Override

                    public void onComplete(@NonNull Task<Location> task) {

                        if (task.isSuccessful() && task.getResult() != null) {

                            mLocation = task.getResult();

                            location("MY_PHONE_NUMBER", task.getResult());

                        } else {

                            Log.w(TAG, "Failed to get location.");

                        }

                    }

                });

    } catch (SecurityException unlikely) {

        Log.e(TAG, "Lost location permission." + unlikely);

    }

}

更新您的位置信息方法


private void location(String phoneNumber, Location currentLocation) {

    try {

        SmsManager smsManager = SmsManager.getDefault();

        smsManager.sendTextMessage(phoneNumber, null, "maps.google.com?q=" + currentLocation.getLatitude() + "," + currentLocation.getLongitude(), null, null);

        Toast.makeText(getApplicationContext(), "SMS Sent!",

                Toast.LENGTH_LONG).show();

    } catch (Exception e) {

        Toast.makeText(getApplicationContext(),

                "SMS faild, please try again later!",

                Toast.LENGTH_LONG).show();

        e.printStackTrace();

    }

}


查看完整回答
反对 回复 2022-09-14
  • 1 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号