Начальное намерение от xml - PullRequest
1 голос
/ 15 июня 2011

Я пытаюсь, чтобы в моих настройках была возможность перейти к настройкам Wi-Fi системы.

<PreferenceScreen
    android:title="Wifi">
    <intent android:action="android.settings.MAIN"/>
</PreferenceScreen>

Появляется меню, в котором я могу выбрать набор действий, одним из которых являются настройки Wi-Fi. Используя logcat, я смог увидеть

act=android.intent.action.MAIN 
cmp=com.android.settings/.wifi.WifiSettings

Как я могу это назвать? Документация для Android не очень понятна. Я нашел ACTION_WIFI_SETTINGS в справочнике, но не могу понять, как вызвать его прямо из намерения.

Спасибо

Редактировать: я пробовал android: компонент, но, видимо, его не существует

Ответы [ 2 ]

8 голосов
/ 15 июня 2011

Попробуйте использовать ACTION_PICK_WIFI_NETWORK для прямого доступа к настройкам Wi-Fi:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >    
    <Preference 
        android:key="key"   
        android:title="WiFi" 
        android:summary="Calls WiFi">           
            <intent android:action="android.net.wifi.PICK_WIFI_NETWORK"/>           
    </Preference>
</PreferenceScreen>

P.S.

Компонент состоит из двух частей: android:targetPackage и android:targetClass. Если вы хотите узнать, какие другие атрибуты xml Intent принимает, перейдите сюда: attrs_manifext.xml

    <!-- The package part of the ComponentName to assign to the Intent, as per
        {@link android.content.Intent#setComponent Intent.setComponent()}. -->
    <attr name="targetPackage" />

    <!-- The class part of the ComponentName to assign to the Intent, as per
        {@link android.content.Intent#setComponent Intent.setComponent()}. -->
    <attr name="targetClass" format="string" />
1 голос
/ 15 июня 2011
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.android.settings", "com.android.settings.wifi.WifiSettings"));
startActivity(intent);
...