当前位置: 首页 > 知识库问答 >
问题:

在接近特定位置时使手机静音

桂智志
2023-03-14

我正在制作一个android应用程序来显示用户在地图上的位置,以及用户当前的经度和纬度,我还使用反向地理编码来显示android设备的地址。现在我计划添加一个功能,如果用户在某个特定位置附近,手机会自动切换到静音模式,为此我制作了一个功能来检查手机是否已经静音。现在我想做另一个,当手机靠近某个特定位置时,它会将手机置于静音模式。

我让手机在接近特定位置时保持沉默的方法是

public void changeToSilent(Location location){

    if(distanceTo(xxxx)<100)
    {
        if(mPhoneIsSilent==true){
        }
        else
        {
            mPhoneIsSilent = true;
            mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
        }
    }
}

现在我在另一个函数中调用这个方法,它是。。。。

public space onLocationChanged(位置位置){Log. d(TAG,"onLocationChanged with位置"location.toString()); Stringtext=String.format("Lat:\t%f\nLong:\t%f\nAlt:\t%f\n轴承:\t%f",location.get纬度(),location.get经度(),location.get海拔(),location.get轴承());this.locationText.setText(text);

    changeToSilent(location);

    try {
      List<Address> addresses = geocoder.getFromLocation(location.getLatitude(), location.getLongitude(), 10); 
      for (Address address : addresses) {
        this.locationText.append("\n" + address.getAddressLine(0));
      }

      int latitude = (int)(location.getLatitude() * 1000000);
      int longitude = (int)(location.getLongitude() * 1000000);

      GeoPoint point = new GeoPoint(latitude,longitude);
      mapController.animateTo(point); 

    } catch (IOException e) {
      Log.e("LocateMe", "Could not get Geocoder data", e);

    }
  }

现在我在oncreate方法中调用上面的函数。现在假设我知道电话应该静音的地方附近的纬度和经度。我想知道的是,在change etosilent方法中,我必须写什么来代替xxxx?

共有1个答案

别俊誉
2023-03-14

您可以使用AudioManager更改系统音量级别。

这里有一个例子:

AudioManager am =  (AudioManager) getSystemService(AUDIO_SERVICE); 
//am.setStreamVolume(AudioManager.STREAM_MUSIC,6,0); //<-- use this one to set the volume
am.setRingerMode(AudioManager.RINGER_MODE_SILENT); //<-- to put on mute.

编辑:获取一个位置对象并使用loc.distance之间();

 类似资料:
  • 据你所知,PHP有一个随机函数,每个人都可以使用它。 现在我的问题是,我怎样才能将重力定义为特定的数? 例如,rand(0100)返回最小值和最大值之间的真正随机数,以及不可预见的将选择的数字,我在10个循环中使用rand,结果是: 28,41,2,94,65,23,47,97,59,69,32 现在我想在特定的数字附近有一个rand数字,例如rand(0,20)。接近10,例如长度为4的怒气。

  • 我需要一个帮助来定位一个JPanel在一个特定的位置到一个Jframe。 我在一个扩展JFrame的类中有一个JPanel,我需要将这个JPanel放在一个特定的x,y位置。 是这样的: 我不需要一个LayoutManager的位置的JPanel,因为我需要把JPanel在一个特定的位置(像150,150的例子)。但是如果我panel.set位置(150,150),就像上面的代码一样,什么都不会发

  • 我有,它有分页,当我滚动一些时候,它正在崩溃。当我慢慢滚动时,它没有崩溃。我已经提供了适配器和活动代码。请让我知道我在这里做错了什么。我已经搜索了相同的问题,但无法在此处捕获错误。 显示某些错误(日志):

  • 问题内容: 如何在Java中使Android手机静音?代码示例非常有帮助。 问题答案: 您可以使用该类。 在本课程中,您正在寻找功能。 可以传递给函数的值是: 振铃模式的一个,或。 您必须将其添加到清单文件中:

  • 问题内容: 我正在编写一个脚本,其中将业务量以纬度和经度加载到mySQL数据库中。然后,我向该脚本提供一个(最终用户的)经度纬度,并且该脚本必须计算从提供的经度/经度到它从数据库中获得的条目的EACH的距离,并按从最远到最远的顺序对其进行排序。 实际上,我实际上只需要大约10或20个“最近”的结果,但是除了从数据库中获取所有结果并对每个结果运行函数然后进行数组排序之外,我什么也想不做。 这是我已经

  • 我在Android应用程序,涉及连接一个特定的WiFi SSID没有密码。每当用户进入应用程序时,应用程序都会通过BLE检测特定的信标。之后,该应用程序尝试使用WifiManager连接应用程序代码中编程的WiFi。在这里,我面临一些问题: 1)如果WiFi已经禁用在手机-应用程序启用WiFi并尝试连接到已经配置的WiFi(可能是字母顺序)。在这种情况下,它可能会连接另一个可用的WiFi,并在手机