मैंने अपने नेक्सस 5 को मार्शमलो को ओटीए के साथ अपग्रेड कर दिया है। चूंकि अद्यतन सरल सेंसर आधारित गतिविधि अब और काम नहीं करती है। निम्नलिखित कोड अन्य उपकरणों (गैलेक्सी एस 4 लॉलीपॉप, एवीडी, ...) परचूंकि मार्शमलो को ओटीए अपडेट के बाद से मेरा जीरोस्कोप आधारित ऐप अब काम नहीं करता है
क्या किसी ने इसका प्रयोग किया है? क्या मुझे कुछ याद आती है?
यहाँ कोड है:
build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "fr.rouk1.test"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest
package="fr.rouk1"
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-feature
android:name="android.hardware.sensor.gyroscope"
android:required="true"/>
<uses-feature
android:name="android.hardware.sensor.accelerometer"
android:required="true"/>
<uses-feature
android:name="android.hardware.sensor.compass"
android:required="true"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
MainActivity.java
package fr.rouk1;
import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
public class MainActivity extends Activity implements SensorEventListener {
private TextView mText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mText = (TextView) findViewById(R.id.text);
initSensor();
}
private void initSensor() {
SensorManager sm = (SensorManager) this.getSystemService(Context.SENSOR_SERVICE);
if (sm.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR) == null) {
sm.registerListener(this,
sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_NORMAL);
sm.registerListener(this,
sm.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
SensorManager.SENSOR_DELAY_NORMAL);
sm.registerListener(this,
sm.getDefaultSensor(Sensor.TYPE_GYROSCOPE),
SensorManager.SENSOR_DELAY_FASTEST);
} else {
sm.registerListener(this,
sm.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR),
SensorManager.SENSOR_DELAY_FASTEST);
}
}
@Override
public void onSensorChanged(SensorEvent event) {
// this is never called
String s = "";
for (int i = 0; i < event.values.length; i++) {
s = s.concat(String.format("%.4f, ", event.values[i]));
}
mText.setText(s);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
switch (accuracy) {
case SensorManager.SENSOR_STATUS_ACCURACY_HIGH:
Log.d("rouk1", "SENSOR_STATUS_ACCURACY_HIGH");
break;
case SensorManager.SENSOR_STATUS_ACCURACY_LOW:
Log.d("rouk1", "SENSOR_STATUS_ACCURACY_LOW");
break;
case SensorManager.SENSOR_STATUS_ACCURACY_MEDIUM:
Log.d("rouk1", "SENSOR_STATUS_ACCURACY_MEDIUM");
break;
case SensorManager.SENSOR_STATUS_NO_CONTACT:
Log.d("rouk1", "SENSOR_STATUS_NO_CONTACT");
break;
case SensorManager.SENSOR_STATUS_UNRELIABLE:
Log.d("rouk1", "SENSOR_STATUS_UNRELIABLE");
break;
}
}
}
जब कोई ऐप क्रैश होता है, तो आप क्रैश कारण के लिए लॉगकैट की जांच कर सकते हैं। संभवतः यह आपको संकेत देगा कि यह क्यों दुर्घटनाग्रस्त हो गया। लॉगकैट साझा करना समस्या को समझने में मदद कर सकता है। एक क्रैशिंग कोड को देखते हुए यह जानकर उपयोगी नहीं है कि यह क्यों दुर्घटनाग्रस्त हो गया। –
ऐप क्रैश नहीं होता है, फ़ंक्शन 'ऑन सेंसर चेंज' को अभी कभी नहीं कहा जाता है। – rouk1
आप कैसे जानते हैं 'ऑन सेंसर चेंज' को नहीं कहा जाता है। https://code.google.com/p/android/issues/detail?id=3708 संबंधित? –