按钮振动使Android应用程序的力量关闭

问题描述:

我只是做一个简单的应用程序,将点击按钮时,会振动,但由于某种原因,当我点击按钮应用程序说,它意外停止,需要强制关闭,下面是源代码到主要的java文件,我已经在我的清单中使用了android vibrate权限。有人可以告诉我为什么每次点击振动按钮时,它会给我意外停止的错误?按钮振动使Android应用程序的力量关闭

package com.test; 

import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.os.Vibrator; 
import android.view.View; 
import android.widget.EditText; 

public class Main extends Activity { 

public final static String EXTRA_MESSAGE = "com.test.MESSAGE"; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
} 

/* Called when the user clicks the button */ 
public void sendMessage(View view) { 
    // do something in response to button 
    Intent intent = new Intent(this, DisplayMessageActivity.class); 
    EditText editText = (EditText) findViewById(R.id.edit_message); 
    String message = editText.getText().toString(); 
    intent.putExtra(EXTRA_MESSAGE, message); 
    startActivity(intent); 
} 

public void vibrateMe() { 


    Vibrator vibrate = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE); 

    vibrate.vibrate(500); 


} 

public void stopVibrating(Vibrator vibrate) { 

     vibrate.cancel(); 
    } 
} 
+0

添加堆栈跟踪,你可能不加振动许可。 – Jug6ernaut 2012-08-15 20:08:17

+0

我使用了振动许可但仍然一直在发生 – 2012-08-15 20:10:05

+0

您确定它是振动器吗?检查logcat,它通常会告诉你哪一行代码是问题。你也可能失去参考振动。 vibrateMe()和stopVibrating被调用的地方在哪里? – 2012-08-15 20:10:13

你有你的vibrateMe()更改为vibrateMe(View v)如果使用android:onClick="vibrateMe"

举例来说,如果你指定的android:的onClick = “sayHello的”,你必须 声明的公共无效的sayHello(视图V)方法您的上下文 (通常是您的活动)。

Check the developer page

公共无效stopVibrating(振动器振动){

vibrate.cancel(); 
} 

删除此再检查。