まず、簡単にテストしてみる。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 コメント:
コメントを投稿