まず、簡単にテストしてみる。rootは必要なし。amコマンドでインテントを直接投げてみる。
adb shell am start -a android.intent.action.MAIN -n com.android.settings/.TetherSettings am start -a android.intent.action.MAIN -n com.android.settings/.wifi.WifiApSettings前者はUSBテザリングのUIを呼び出す。後者はWIFIテザリングのUIを呼び出す。インテントを直接投げます。WIFIの設定UIから消えているだけで、実際はこのように存在するわけですね。WIFIしかためしていませんが、普通にテザリングできました。
アプリで書くならこんな感じ。
package com.hogehoge.gtether;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class GTether extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnUSB = (Button)findViewById(R.id.Button01);
Button btnWIFI = (Button)findViewById(R.id.Button02);
btnUSB.setText("USB Tethering Mode");
btnWIFI.setText("Wifi AP Tethering Mode");
btnUSB.setOnClickListener(new OnClickListener(){
public void onClick(View v){
Intent intent = new Intent();
intent.setAction(Intent.ACTION_MAIN);
ComponentName com = new ComponentName("com.android.settings",
"com.android.settings.TetherSettings");
intent.setComponent(com);
startActivity(intent);
}
});
btnWIFI.setOnClickListener(new OnClickListener(){
public void onClick(View v){
Intent intent = new Intent();
intent.setAction(Intent.ACTION_MAIN);
ComponentName com = new ComponentName("com.android.settings",
"com.android.settings.wifi.WifiApSettings");
intent.setComponent(com);
startActivity(intent);
}
});
}
}
UIはボタン2個だけなのでeclipseならエディタでボタンを2つドロップしたらおしまい。Androidはこう言うのがたくさんあって面白い。ちなみにamコマンドで、
am start -a com.android.intent.action.MAINとだけ入力してみると。いろいろ出てくるので楽しめます。不具合でても責任とれないので、自己責任でよろしく。
0 コメント:
コメントを投稿