[独習android]検索キー長押しでテザリング設定画面を開く

Posted November 10th, 2010 in General. Tagged: , , , .

テザリングのON/OFFはこまめにやりたいので、操作を簡単にしたかった。というわけで、検索キー(検索ボタン)長押しでアクティビティを起動する方法を調べてみた。ちなみに、froyoじゃないと意味がない。Ideos, Galaxy Tab で使えることを確認した。apkはこちら→http://groundwalker.com/apk/gWtetheringMenu.apk

大まかな流れ

  • AndroidManifest.xml で android.intent.action.SEARCH_LONG_PRESS を受け取るように記述すると
    • インストールして検索ボタン長押しで「アプリケーションを選択」ダイアログがでるので「常にこの操作で使用する」をチェックしておけば、その後は一発起動になる
  • onCreate() で起動したいアクティビティを指定して インテントを放り投げる
  • 呼び出し側のアクティビティ自身は finish() で終わっとく。
    • 終わっとかないと BACKキーで戻れてしまう→OnResume()定義してもいいけど、ただホームに戻りたい
  • ランチャーにアイコン表示させる必要はないので、android.intent.category.LAUNCHER の intent-filter は削除しておく

AndroidManifest.xml

        <activity android:name=".HomeActivity"
                  android:label="@string/app_name">
            ...
            <intent-filter>
            	<!--  検索ボタン長押しで起動するように -->
                <action android:name="android.intent.action.SEARCH_LONG_PRESS" />
                <!-- 標準動作の候補になるように -->
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

HomeActivity.java

package com.groundwalker.android.gWtetheringMenu;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

public class HomeActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        Log.v(TAG, "onCreate() called");
        super.onCreate(savedInstanceState);
        
        // テザリング設定(→ポータブルWi-Fiアクセスポイントの設定(Mobile AP)に変更)を呼び出すインテントを作る
		Intent i = new Intent(Intent.ACTION_MAIN);
		i.setClassName(
				"com.android.settings", 
				"com.android.settings.wifi.WifiApSettings");
		
		// 呼び出す
		try {
			startActivity(i);
		} catch (Exception e) {
	        Log.e(TAG, "cannot start the activity");
		}    

		// 自分は終わっとく
		finish();
    }

    private final String TAG = "gWtetheringMenu";
}

apk

  • なんの保証もしませんが、apk置いておきます。
    12/13 ver.1.2(WifiAP((Mobile AP)設定を起動するように変更→Galaxy Tabでもテザリング使えるようになるので)(12/13現在)
  • http://groundwalker.com/apk/gWtetheringMenu.apk

参考

関連情報

Posted November 10th, 2010 in General. Tagged: , , , .

2 comments:

  1. Ideos U8150-B とかで使うとしあわせになれるかもしれませんね。

    groundwalker:
  2. Galaxy Tab ではテザリング設定画面は無効化されているが、Mobile AP設定画面は有効なので、こちらを起動するようにした。

    groundwalker:

track feed