将手机状态更改为振动

时间:2013-11-12 06:08:17

标签: android gps

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

5 个答案:

答案 0 :(得分:0)

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);

答案 1 :(得分:0)

试试这个:

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

audio_mngr.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);

答案 2 :(得分:0)

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

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

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

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

答案 3 :(得分:0)

您的应用会做两件事:

  • 收听位置更新
  • 更改铃声模式

1 /收听位置更新

请在此处查看如何在您的应用中实现该功能:http://developer.android.com/guide/topics/location/strategies.html#Updates

根据您的偏好调用正确的LocationManager.requestLocationUpdates()方法:

  • 使用哪个提供商(GPS更准确,但消耗更多电池)
  • 您希望更新发送的频率(毫秒或米)
  • 发送意图或致电听众,如上例所示

2 /更改振铃模式

每当您的应用收到位置更新时,您都会获得一个带坐标的Location对象。假设您在应用程序中有预定义的位置进行比较,您可以使用Location.distanceBetween()来了解您与预定义位置的距离。 如果距离足够近,则更改振铃模式。 Homo Sapiens给出的代码似乎没问题。

3 /当您没有接近任何预定位置时,不要忘记将振铃器设置为正常模式!

HTH

PS:我还没有尝试过这个,只是对Android文档的一些快速研究......

答案 4 :(得分:0)

尝试:

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

注意:

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

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