java - 如何在服务中让手机振动?

标签 java android

我正在使用 android studio 进行编程。我想要一个让手机振动的程序。即使您不打开该应用程序。所以它应该在后台,我想我必须把它写在服务中。但它会抛出异常。如何解决?

主要 Activity :

public class MainActivity extends ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Intent i= new Intent(MainActivity.this,Silent.class);
    startService(i);


}

无声服务:

public class Silent extends Service {
public Silent() {
    AudioManager myAudioManager;
    myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
    myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);

}

它抛出异常:

java.lang.NullPointerException on Silent.java.12

它发生在这一行:

myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);

最佳答案

另一个答案:

在启动时触发广播接收器。

或者另一种方法是:

public class MainActivity extends ActionBarActivity {

    private String TAG = "TAG";

    @Override
    public void onCreate(Bundle bundle){
        super.onCreate(bundle);
        Log.e(TAG, "onCreate");
        Vibrator mVibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
        mVibrator.vibrate(500);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
    }
}

您必须将其添加到 Android Manifest.xml 中:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="nope.myapplicationvibrate" >

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>

</manifest>

您需要创建一个管理器来存储(并提供)一个 Context 对象以便能够使用:

(Vibrator) Context.getSystemService(Context.VIBRATOR_SERVICE) 方法。

希望有帮助。

关于java - 如何在服务中让手机振动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31883655/

相关文章:

java - 如何在不下载的情况下分析 github 上的项目?

java - 使用 Google Drive SDK 将文件保存在特定文件夹中

android - 无障碍服务 : get views you can interact with instantly (same as Voice Access)?

android - Android和声音

java - 使用自定义 XML 文件的 Android 滑动选项卡

android - 在 Android 平台上使用 dlclose(...) 时出现段错误

java - Guice 如何将依赖项注入(inject)从动态加载的类实例化的对象

java - 在带有整数和数学/逻辑错误的 If 语句中使用更短版本的 或 "||"?

java - 在识别和修复 SSLPeerUnverifiedException 方面需要帮助

java - 如何将GIF设置为壁纸并在一段时间后停止GIF动画?