Android 将手机状态更改为振动

Android 将手机状态更改为振动,android,gps,Android,Gps,我正在创建一个应用程序,当我的手机进入预定义位置时,它必须通过gps自动转到振动模式,即当我的纬度和经度在1公里半径内匹配时,手机应将其状态更改为振动模式。您宝贵的回答将不胜感激。 提前感谢添加权限 Add Permission <uses-permission android:name="android.permission.VIBRATE"/> Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

我正在创建一个应用程序,当我的手机进入预定义位置时,它必须通过gps自动转到振动模式,即当我的纬度和经度在1公里半径内匹配时,手机应将其状态更改为振动模式。您宝贵的回答将不胜感激。 提前感谢

添加权限
Add Permission
<uses-permission android:name="android.permission.VIBRATE"/>

Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
// Vibrate for 500 milliseconds
v.vibrate(500);

For Distance :

Location locationA = new Location("point A");

locationA.setLatitude(latA);
locationA.setLongitude(lngA);

Location locationB = new Location("point B");

locationB.setLatitude(latB);
locationB.setLongitude(lngB);

float distance = locationA.distanceTo(locationB);
可控震源v=(可控震源)getSystemService(Context.可控震源_服务); //振动500毫秒 v、 振动(500); 距离: 位置A=新位置(“点A”); 地点a.设置纬度(拉塔); 地点a.经度(lngA); 位置B=新位置(“点B”); 位置b.设置纬度(纬度); 位置b.设置经度(lngB); 浮动距离=位置A.distanceTo(位置B);
试试这个:

    AudioManager audio_mngr = (AudioManager) getBaseContext().getSystemService(Context.AUDIO_SERVICE); 

audio_mngr.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);

在清单文件中设置振动权限,如下所示

当您进入预定位置时,请使用以下振动代码

Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);     
// Vibrate for 300 milliseconds
v.vibrate(300);

你的应用程序将完成两件事:

  • 收听位置更新
  • 更改振铃器模式
1/收听位置更新

请参见此处如何在应用程序中实现此功能:

根据您的首选项调用适当的LocationManager.requestLocationUpdates()方法:

  • 使用哪家供应商(GPS更精确,但会消耗更多电池)
  • 您希望多久发送一次更新(毫秒或米)
  • 发送意图或调用侦听器,如上面的示例所示
2/更改振铃器模式

每当你的应用程序收到位置更新,你就会得到一个带有坐标的位置对象。假设您的应用程序中有预定义的位置可供比较,您可以使用Location.distanceBetween()来了解您离预定义位置的距离。 如果距离足够近,请更改振铃器模式。智人给出的密码似乎没问题

3/当您不靠近任何预定义位置时,不要忘记将振铃器设置回正常模式

PS:我没有试过这些,只是对Android文档进行了一些快速研究…

试试:

Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
// Vibrate for 500 milliseconds
v.vibrate(500);
注:

不要忘记在AndroidManifest.xml文件中包含权限:

<uses-permission android:name="android.permission.VIBRATE"/>


您需要提供一项服务来检查您预定义的位置。每个点的纬度和经度都不同。因此,我实际上希望手机能够在每个位置(1公里以内)振动,无论长纬度是多少,如果它应该在1公里内出现。好的,你需要跟踪相同的点,你想振动上面的代码工作良好。如果有任何查询,你可以添加注释,即使我将我的位置更改为5cm,那么长度和纬度也会有所不同。如何跟踪这些位置是我想要的大麻烦。无论长纬度是什么,手机都应该在相应的位置(1km内)振动,前提是它应该在1公里内出现。如果手机在范围内,则启用振动模式,如果不启用响铃模式。这是我的问题。我正在寻求代码或相关帮助。thnxMam,我实际上希望手机在相应的位置振动。