У меня есть очень простой файл MainActivity.smali, который я хочу в конечном итоге вызвать MainService.smali. Это не проблема. Проблема возникает, когда я пытаюсь написать код, чтобы событие датчика акселерометра вызывало MainService.smali.
Я использую стандартный текстовый редактор и apktool для декомпиляции и сборки своих пакетов. Пакет не может быть собран из-за ошибок, таких как:
test/smali/com/home/launch/MainActivity.smali[5,0] missing EOF at 'public'
Could not smali file: com/home/launch/MainActivity.smali
Главный вопрос в том, как правильно реализовать этот код датчика SensorEvent акселерометра?
Я был бы очень признателен, если бы кто-то помог мне понять, что я я делаю что-то не так, как я пытаюсь узнать это заранее спасибо.
Это рабочий код, который я использую для вызова MainService.smali:
.class public Lcom/home/launch/MainActivity;
.super Landroid/app/Activity;
# direct methods
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Landroid/app/Activity;-><init>()V
return-void
.end method
# virtual methods
.method protected onCreate(Landroid/os/Bundle;)V
.locals 0
invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V
invoke-static {p0}, Lcom/home/launch/MainService;->startService(Landroid/content/Context;)V
invoke-virtual {p0}, Lcom/home/launch/MainActivity;->finish()V
return-void
.end method
Это то, что код выглядит например, когда я пытаюсь реализовать SensorEvent:
.class public Lcom/home/launch/MainActivity;
.super Landroid/app/Activity;
public class MainActivity extends AppCompatActivity implements SensorEventListener{
private static final String TAG = "MainActivity";
private SensorManager sensorManager;
sensor accelerometer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sensorManager.registerListener(MainActivity.this, acceleeometer,
SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
public void onAccuracyChanged(Sensor sensor, int i) {
}
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
.method public constructor <init>()V
.locals 0
invoke-direct {p0}, Landroid/app/Activity;-><init>()V
return-void
.end method
.method protected onCreate(Landroid/os/Bundle;)V
1.locals 0
invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V
invoke-static {p0}, Lcom/home/launch/MainService;->startService(Landroid/content/Context;)V
invoke-virtual {p0}, Lcom/home/launch/MainActivity;->finish()V
return-void
.end method
}
}