為了探討 Amarino v2.0.apk 是怎麼寫出來的,今天下午花了一些時間 google 一下 Android apk 檔反編譯的資料,
發現可以依照底下這一篇文章的說明, 逐步將 .apk 檔反編譯成 .jar
網址 http://stackoverflow.com/questions/3593420/android-getting-source-code-from-an-apk-file
個人不敢藏私, 特在此提供給同好參考.
如果你把 Amarino v2.0.apk 反編譯之後,
你將會發現在不使用 Amarino.connect(this, strAddress); 的情況下,
底下的方式也可以對藍芽連線.
package com.example.rotatephone;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
public class MainActivity extends Activity {
private static final String strAddress = "00:12:06:01:50:75";
private void btConnect(Context context, String s) {
Intent intent = new Intent("amarino.intent.action.CONNECT");
intent.putExtra("amarino.intent.extra.DEVICE_ADDRESS", s);
context.sendBroadcast(intent);
}
private void btDisconnect(Context context, String s) {
Intent intent = new Intent("amarino.intent.action.DISCONNECT");
intent.putExtra("amarino.intent.extra.DEVICE_ADDRESS", s);
context.sendBroadcast(intent);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onStart() {
super.onStart();
// Amarino.connect(this, strAddress);
btConnect(this, strAddress);
}
@Override
protected void onStop() {
super.onStop();
// Amarino.disconnect(this, strAddress);
btDisconnect(this, strAddress);
}
} |