Search code examples
androidtextviewsensors

Textviews are not showing on real device


When app works fine

When app not shows textviews(its finding a sensor. When cant find, giving info on textview like 'didnt found')

I created a pedometer app. It was working well on my emulator and my own android device. But when ı publish that app my friends said textviews are invisible. I examined that problem in code but didnt found a problem. Textviews are getting their text from sensor. Writing steps and calories, after some calculating. Why that problem showed up? What is the source of this problem? Why is this happening?

<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>

My 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));

    }

}

Solution

  • I found what is the problem. I was forgetting the add user permissions.

    I Added to the Manifest.xml:

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

    onCreate Method:

    if(ContextCompat.checkSelfPermission(this,
            Manifest.permission.ACTIVITY_RECOGNITION) == PackageManager.PERMISSION_DENIED){
        //ask for permission
        requestPermissions(new String[]{Manifest.permission.ACTIVITY_RECOGNITION}, PHYISCAL_ACTIVITY);
    }