安卓开发 摇一摇功能

============问题描述============

以下是我的摇一摇实现的代码

public class Yao extends Activity implements SensorEventListener

{

	 EditText tv =(EditText)findViewById(R.id.editText1);

	 Button button =(Button)findViewById(R.id.button1);

	 SensorManager sensorManager = null;

	 Vibrator vibrator = null;

	 

	@Override

	protected void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);

		setContentView(R.layout.activity_main);

		if (android.os.Build.VERSION.SDK_INT > 9) {

            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();

            StrictMode.setThreadPolicy(policy);

        } 

		button.setOnClickListener(new OnClickListener()

		  {

			@Override

			public void onClick(View v) {

				// TODO Auto-generated method stub

				tv.setText("初始文本");

			}	  

		  });

		sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

		vibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE);

	}

	@Override

	 protected void onPause()

	 {

	  super.onPause();

	  sensorManager.unregisterListener(this);

	 }

	 

	 @Override

	 protected void onResume()

	 {

	  super.onResume();

	  sensorManager.registerListener(this,

	  sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),

	  SensorManager.SENSOR_DELAY_NORMAL);

	 }

	 

	 @Override

	 public void onAccuracyChanged(Sensor sensor, int accuracy)

	 {

	  //当传感器精度改变时回调该方法,Do nothing.

	 }

	 

	 @Override

	 public void onSensorChanged(SensorEvent event)

	 {

	 

	  int sensorType = event.sensor.getType();

	  //values[0]:X轴,values[1]:Y轴,values[2]:Z轴

	  float[] values = event.values;

	  if (sensorType == Sensor.TYPE_ACCELEROMETER)

	  {

	   if ((Math.abs(values[0]) > 17 || Math.abs(values[1]) > 17 || Math

	     .abs(values[2]) > 17))

	   {

//	    Log.d("sensor x ", "============ values[0] = " + values[0]);

//	    Log.d("sensor y ", "============ values[1] = " + values[1]);

//	    Log.d("sensor z ", "============ values[2] = " + values[2]);

	    tv.setText("摇一摇成功!!!");

	    //摇动手机后,再伴随震动提示~~

	    vibrator.vibrate(500);

	   }

	 

	  }

	 }

}

为什么程序运行的时候会提示程序无响应然后就退出了?我看了一下网上的代码都是这么写的,问题出现在哪里呢?高分送上,请各位高手帮帮忙

============解决方案1============

控件初始化不能放在最上面

 EditText tv =(EditText)findViewById(R.id.editText1);      Button button =(Button)findViewById(R.id.button1); 

这个需要在

setContentView(R.layout.activity_main);

后调用

============解决方案2============

看来LZ是新手啊,以后得认真学习

引用 1 楼 guoyoulei520 的回复:

控件初始化不能放在最上面

 EditText tv =(EditText)findViewById(R.id.editText1);      Button button =(Button)findViewById(R.id.button1); 

这个需要在

setContentView(R.layout.activity_main);

后调用

============解决方案3============

在UI线程中做了计算量大的操作了吧

时间: 2024-10-14 04:24:54

安卓开发 摇一摇功能的相关文章

安卓开发_实现截图功能

4-17号在360云盘提供了 群雄兵法APP的下载,将其作为测试版,在短短10天内便下载量超过1000,虽说不是很高,但是也证明我一个月的努力是值得的. 这两天游戏更新了,我也将推出最新的版本,在原来的测试版本的基础上,修改了一些内容的错误,优化了部分界面,添加了武将生平介绍,武将成长值等资料. 因为广大的用户提出装备模拟之后无法保存的问题,我在自己所学的基础上进行的解决,但是无奈没有解决成功,于是乎先用截图功能来实现装备模拟后的属性保存吧. 网上百度了很多,大部分相当复杂,对于我这个水平来说,

安卓开发_求好评功能

现在大多数APP在更多功能,或者设置里面都有一个类似,“给我点赞”,“求好评”的功能. 即,调用手机已安装的应用下载平台,找到该APP的下载界面. 相同的功能当然也可以做成“检查更新”的功能 代码很简单: 1 Uri uri = Uri.parse("market://details?id="+getPackageName()); //获取应用商店 2 Intent intent = new Intent(Intent.ACTION_VIEW,uri); 3 intent.addFla

C#开发微信门户及应用(28)--微信“摇一摇·周边”功能的使用和接口的实现

”摇一摇周边“是微信提供的一种新的基于位置的连接方式.用户通过“摇一摇”的“周边”页卡,可以与线下商户进行互动,获得商户提供的个性化的服务.微信4月份有一个赠送摇一摇设备的活动,我们有幸获得赠送资格,取得一个摇一摇的设备用来测试这个新增的.很有潜力的功能.”摇一摇周边“是微信基于低功耗蓝牙技术的 O2O 入口级应用,与微信的其他线下连接能力一道,加速促成了微信 O2O 闭环的实现.本文主要介绍一摇设备的配置使用,以及如何在开发层面上,定义及实现微信摇一摇的功能接口. 1.IBeacon基础知识介

iOS开发——高级技术&摇一摇功能的实现

摇一摇功能的实现 在AppStore中多样化功能越来越多的被使用了,所以今天就开始介绍一些iOS开发的比较实用,但是我们接触的比较少的功能,我们先从摇一摇功能开始 在 UIResponder中存在这么一套方法 1 - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_3_0); 2 3 - (void)motionEnded:

【WP开发】实现“摇一摇”功能

尽管我的微信是每八个月登录一次,但我相信各位玩得比我多.微信有一个“摇一摇”功能,这个功能其实是利用了加速度传感器来实现的,这个传感器,我估计再低端的手机都会有的,这是严重基本的传感器. 重力加速度既可以用于判断手机当前所放置的方向,也可以用来检测运动方向,当用户甩手机时就会产生运动加速度. 位于Windows.Devices.Sensors命名空间下的Accelerometer类封装了重力加速器相关的操作,“摇一摇”可以判断手机在X,Y,Z三个方向上的加速度来实现,甩手机时比较激动,因此,X,

Android 使用加速度传感器实现摇一摇功能及优化

如有转载,请声明出处: 时之沙: http://blog.csdn.net/t12x3456 目前很多应用已经实现了摇一摇功能,这里通过讲解该功能的原理及实现回顾一下加速度传感器的使用: 1.首先获得传感器管理器的实例 sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE); 2.通过传感器管理器获得加速传感器 accelerateSensor = getSensorManager(cont

Android 微信摇一摇功能实现

开发之前 今天学习了一下传感器, 脑子里就蹦出了微信的摇一摇, 于是鼓了鼓勇气抽空写了出来, 本人菜鸟一枚, 希望大神们多多指点 开发环境 Android Studio 2.2.1 JDK1.7 API 24 Gradle 2.2.1 相关知识点 加速度传感器 补间动画 手机震动 (Vibrator) 较短 声音/音效 的播放 (SoundPool) 开始开发 案例预览 案例分析 我们接下来分析一下这个案例, 当用户晃动手机时, 会触发加速传感器, 此时加速传感器会调用相应接口供我们使用, 此时

android音乐播放器开发 SweetMusicPlayer 摇一摇换歌

上一篇写了如何在线匹配歌词,http://blog.csdn.net/huweigoodboy/article/details/39878063,现在来讲讲摇一摇功能开发. 同样用了一个Service去实现摇一摇. ShakeListener继承自SensorEventListener,当加速度感应器感受到重力变化,就去通知onShakeListener调用onShake(), 在震动的同时随机一首歌. 一,加速度感应器 在这里需要设置一个速度阈值和时间间隔,控制一定的时间间隔才能触发第二次震动

微信开发微信“摇一摇·周边”正式开放

今日,在微信公开课第三季长沙站现场,微信团队宣布“摇一摇·周边”(以下简称“摇周边”)正式对外开放.拥有微信认证的公众帐号商户,均可通过摇周边的商户申请平台(https://zb.weixin.qq.com/)或者微信公众平台后台申请入驻.联合微信支付.公众帐号.微信卡包,摇周边为更多商家提供了便捷连接用户和精准近场服务的能力. 据悉,摇周边还将于 4 月 13 日开展“免费送设备”体验活动,前 2000 名入驻的商户将有机会获得微信团队免费赠送的摇周边设备. 摇周边是微信基于低功耗蓝牙技术的