【发布时间】:2021-05-25 12:57:49
【问题描述】:
When app not shows textviews(它正在寻找传感器。当找不到时,在 textview 上提供信息,例如“未找到”)
我创建了一个计步器应用。它在我的模拟器和我自己的安卓设备上运行良好。但是当我发布该应用程序时,我的朋友说 textviews 是不可见的。我在代码中检查了这个问题,但没有发现问题。 Textviews 正在从传感器获取文本。经过一番计算,写下步数和卡路里。为什么会出现这个问题?这个问题的根源是什么?为什么会这样?
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context="com.mbkdev.fragments.CountStepFragment"
android:background="#211D44"
><androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" >
<Button
android:id="@+id/btnstop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:background="@drawable/roundedbtn"
android:text="Durdur"
android:textAllCaps="false"
android:textColor="#EBE9F1"
android:textSize="15sp"
android:textStyle="italic"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.781"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.184" />
<Button
android:id="@+id/btnstart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/roundedbtn"
android:gravity="center"
android:text="Başlat"
android:textAllCaps="false"
android:textColor="#EBE9F1"
android:textSize="15sp"
android:textStyle="italic"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/btnstop"
app:layout_constraintHorizontal_bias="0.472"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.184" /></androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/txtStepCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#48B9AC"
android:layout_centerInParent="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/txtStepCount"
android:layout_margin="10dp"
android:textColor="#48B9AC"
android:layout_centerHorizontal="true"
android:text="Hedef: 10.000"
/>
<ProgressBar
android:id="@+id/progress_circular"
android:layout_width="250dp"
android:layout_height="250dp"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:layout_marginTop="65dp"
android:indeterminateOnly="false"
android:progressDrawable="@drawable/circle"
android:rotation="-90"
tools:progress="60" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_below="@+id/progress_circular"
android:gravity="center"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/imageView2"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_weight="1"
android:src="@drawable/cal"
android:layout_marginBottom="45dp"
android:layout_marginLeft="12dp"
/>
<ImageView
android:id="@+id/imageView3"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_weight="1"
android:src="@drawable/distance"
android:layout_marginRight="21dp"
android:layout_marginBottom="45dp"
android:layout_marginHorizontal="10dp"
/>
<ImageView
android:id="@+id/imageView"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/steps"
android:layout_weight="1"
android:layout_marginRight="15dp"
android:layout_marginBottom="45dp"
/>
</LinearLayout>
<LinearLayout
android:id="@+id/txtlinear"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/progress_circular"
android:gravity="center"
android:orientation="horizontal"
android:layout_marginTop="85dp"
>
<TextView
android:id="@+id/txtcalori_info"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:text="Kalori: "
android:textSize="16sp"
android:textColor="#48B9AC"
android:layout_weight="1"
android:textStyle="italic"
android:layout_marginLeft="12dp"
android:layout_centerHorizontal="true"
android:layout_toLeftOf="@+id/txtdistanceinfo"
android:layout_below="@+id/progress_circular"
android:gravity="center_horizontal"
/>
<TextView
android:id="@+id/txtdistanceinfo"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:textColor="#48B9AC"
android:layout_below="@+id/progress_circular"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal"
android:layout_weight="1"
android:text="Mesafe: "
android:textSize="16sp"
android:textStyle="italic" />
<TextView
android:id="@+id/txtstepinfo"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:gravity="center_horizontal"
android:layout_below="@+id/progress_circular"
android:layout_marginRight="12dp"
android:textColor="#48B9AC"
android:layout_weight="1"
android:layout_toRightOf="@+id/txtdistanceinfo"
android:text="Adım: "
android:textSize="16sp"
android:textStyle="italic" />
</LinearLayout>
我的 StepCounterFragment:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_count_step,container,false);
getActivity().getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
View view = inflater.inflate(R.layout.fragment_count_step, container, false);
textView = view.findViewById(R.id.txtStepCount);
txtstepinfo = view.findViewById(R.id.txtstepinfo);
txtcalinfo = view.findViewById(R.id.txtcalori_info);
txtDistanceinfo = view.findViewById(R.id.txtdistanceinfo);
btnStart = view.findViewById(R.id.btnstart);
btnStop = view.findViewById(R.id.btnstop);
progressBar = view.findViewById(R.id.progress_circular);
progressBar.setMax(10000);
btnStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startService();
}
});
btnStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getActivity().stopService(new Intent(getActivity(), StepCountService.class));
}
});
sharedPreferences = getActivity().getSharedPreferences("KEY", Context.MODE_PRIVATE);
editor = sharedPreferences.edit();
sensorManager = (SensorManager) getActivity().getSystemService(SENSOR_SERVICE);
if(sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER) != null){
stepCounter = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
isCounterSensorPresent = true;
}
else{
textView.setText("Bulunamadı");
isCounterSensorPresent = false ;
}
System.out.println(stepCount);
return view;
}
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
if (sensorEvent.sensor == stepCounter){
stepCount = (int) sensorEvent.values[0];
////////////////
saveSteps();
resetStep();
int stepNumb = sharedPreferences.getInt("step",0);
////////////////
progressBar.setProgress(stepNumb);
textView.setText(String.valueOf(stepNumb));
txtstepinfo.setText("Adım: " + String.valueOf(stepNumb) );
///////////
progressBar.setProgress(stepNumb);
Log.i("sda",String.valueOf(stepCount));
/////////////////////
txtcalinfo.setText("Kalori: "+calculateCalori(stepNumb));
txtDistanceinfo.setText("Mesafe: "+calculateDistance(stepNumb));
}
}
【问题讨论】:
-
部分设备可以看到文字。是关于传感器的吗?
-
你用什么设备来测试这个?大多数设备,尤其是中低端设备没有气压计传感器,因此您的文本视图是可见的,但没有显示任何文本
-
是的,可能。但甚至更低的检测传感器。如果是传感器问题引起的问题,如何解决?我不想使用gps。有没有不同的方式存在?
-
没有检测传感器的低端设备,你需要阅读每个设备的硬件规格,看看它是否支持这一点,从 1 年前的类似案例中我不得不删除气压计功能导致大多数手机没有传感器
-
设备有传感器。如果应用程序找不到传感器,则其写入“未找到传感器”。另外我下载了另一个使用传感器的应用程序。它运作良好。我没明白问题出在哪里。