微信摇一摇功能实现

1.先声明用户权限

代码:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.weixin"
android:versionCode="1"
android:versionName="1.0" >

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

<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" android:enabled="true">
<activity android:name="weixin.MainAc"
android:configChanges="orientation|keyboardHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>

2.MainActivity中通过SensorEventListener接口来实现这个功能

代码:

public class MainAc extends Activity implements SensorEventListener{

/* (非 Javadoc)
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
Button button;
TextView text;
Vibrator vibrator;
SensorManager sm=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO 自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.layout);
button=(Button)findViewById(R.id.button);
text=(TextView)findViewById(R.id.text);
button.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO 自动生成的方法存根
text.setText("");
}
});
}
@Override
public void onAccuracyChanged(Sensor arg0, int arg1) {
// TODO 自动生成的方法存根
//do nothing.
}
@Override
public void onSensorChanged(SensorEvent event) {
// TODO 自动生成的方法存根
int sensortype=event.sensor.getType();



if(sensortype==Sensor.TYPE_ACCELEROMETER){
vibrator.vibrate(500);
text.setText("shaking");
}
}
/* (非 Javadoc)
* @see android.app.Activity#onPause()
*/
@Override
protected void onPause() {
// TODO 自动生成的方法存根
super.onPause();
sm.unregisterListener(this);
}
/* (非 Javadoc)
* @see android.app.Activity#onResume()
*/
@Override
protected void onResume() {
// TODO 自动生成的方法存根
super.onResume();
sm.registerListener(this, sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),SensorManager.SENSOR_DELAY_NORMAL);
}}

可是会报Unable to resume activity错误,求高手拯救。。、。

posted @ 2015-04-08 18:57  ma_fighting  阅读(402)  评论(0编辑  收藏  举报
历史天气查