android 实现坡度仪功能

  在网上找了好久,一直没有找到如何通过安卓手机获得坡度的教程,唯一只有一个HowSteep的应用。最后没有办法,只好反编译之 - -

  研究了两个多小时,终于调好了,主要是因为它的程序太多没有用的东西了,我只是想获得坡度这个一个数值就好了~

  不多说,上源码。

package com.example.howsteep;

import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import java.util.Iterator;
import java.util.List;

public class HowSteep extends ActionBarActivity
implements SensorEventListener, View.OnClickListener
{

protected static final String TAG = "HowSteep";
boolean isBackgroundBlack = true;
private boolean mClicked = false;
private TextView mDetail;
private LinearLayout mScreen;
private SensorManager mMgr;
private List<Sensor> mSensorList;

/*
* 将输入的字符转换为角度,并显示出来
*/
private void setScreenForAngle(float paramFloat)
{
StringBuilder localStringBuilder1 = new StringBuilder();
int i = Math.abs(Math.round(paramFloat));

if (paramFloat > 0.0F)
{
localStringBuilder1.append("-");
}
if (paramFloat < 90.0F)
{
localStringBuilder1.append(" ");
localStringBuilder1.append(i);
localStringBuilder1.append(" °");
}

while (true)
{
this.mDetail.setText(localStringBuilder1);
return;
}
}


private void startSensing()
{
this.mSensorList = this.mMgr.getSensorList(3);
Iterator localIterator = this.mSensorList.iterator();
while (true)
{
if (!localIterator.hasNext())
{
return;
}

Sensor localSensor = (Sensor)localIterator.next();
this.mMgr.registerListener(this, localSensor, 3);
}
}

private void stopSensing()
{
this.mMgr.unregisterListener(this);
}

public void onAccuracyChanged(Sensor paramSensor, int paramInt)
{
}

public void onSensorChanged(SensorEvent paramSensorEvent)
{
setScreenForAngle(paramSensorEvent.values[1]);
}

public void onClick(View paramView)
{
int i = paramView.getId();
Log.d("HowSteep", "Id is " + i);
Log.d("HowSteep", "mClicked =" + this.mClicked);
if (this.mClicked)
{
startSensing();
this.mClicked = false;
return;
}
stopSensing();
this.mClicked = true;
}

@Override
public void onCreate(Bundle paramBundle)
{
super.onCreate(paramBundle);
Log.d("HowSteep", "onCreate()");
try
{
setContentView(R.layout.main);

this.mMgr = ((SensorManager)getSystemService("sensor"));
this.mScreen = ((LinearLayout)findViewById(R.id.screen));
this.mDetail = ((TextView)findViewById(R.id.detail));
this.mDetail.setText("0 °");

while (true)
{
this.mScreen.setOnClickListener(this);

return;
}
}
catch (Exception localException)
{
//FlurryAgent.onError("HS001", localException.getMessage(), "HowSteep");
Log.d("HowSteep", "onCreate() Flurry logged \"Got this error in onCreate()\"");
}
}


@Override
protected void onPause()
{
Log.d("HowSteep", "onPause()");
super.onPause();
stopSensing();
}

@Override
protected void onResume()
{
super.onResume();
Log.d("HowSteep", "onResume()");
startSensing();
}

}


没有想到这么简单就实现了,之前没有接触过censor类,也没有细研究,好用就好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值