原理:通过设备内置传感器生成随机散列字串,再通过取余等操作获取最终数字,这种方法不同于传统的伪随机数生成器,而是依赖于硬件,需要硬件支持。
以下模块实现每隔0.5秒随机生成数字0和1。
private SensorManager sm;
private int eventCount;
private int flagCount;
private StringBuffer mKeyBuffer = new StringBuffer();
private boolean isRunning;
private List<Integer> numbers = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sensor);
sm = (SensorManager) getApplicationContext().getSystemService(Service.SENSOR_SERVICE);
List<Sensor> sensors = sm.getSensorList(Sensor.TYPE_ALL);
for (Sensor sensor : sensors) {
sm.registerListener(this, sensor, SensorManager.SENSOR_DELAY_FASTEST);
}
isRunning = true;
//final StringBuffer values = new StringBuffer();
new Thread() {
@Override
public vo