1

Я хочу открыть настройку Android4.2 WifiDisplaySettingsActivity из моего приложения.Как открыть WifiDisplay Настройка из другого приложения?

Я попытался

 Intent i; 
     PackageManager manager = getActivity().getPackageManager(); 
     try { 
      i = manager.getLaunchIntentForPackage("com.android.settings.wfd"); 
      if (i == null) 
       throw new PackageManager.NameNotFoundException(); 
      i.addCategory(Intent.ACTION_MAIN); 
      startActivity(i); 
     } catch (PackageManager.NameNotFoundException e) { 

     } 

и

final Intent intent = new Intent(Intent.ACTION_MAIN, null); 
    intent.addCategory(Intent.CATEGORY_LAUNCHER); 
    final ComponentName cn = new ComponentName("com.android.settings.wfd","com.android.settings.wfd.WifiDisplaySettings"); 
    intent.setComponent(cn); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(intent); 

, но ни один из них не мог работать. я пошел в AndroidManifest.xml, чтобы увидеть код

 <activity android:name="Settings$WifiDisplaySettingsActivity" 
      android:label="@string/wifi_display_settings_title" 
      android:taskAffinity="" 
      android:excludeFromRecents="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <action android:name="android.settings.WIFI_DISPLAY_SETTINGS" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
     <meta-data android:name="com.android.settings.FRAGMENT_CLASS" 
      android:value="com.android.settings.wfd.WifiDisplaySettings" /> 
    </activity> 

вопрос, я знаю, что это класс фрагмент, и я знаю, что это имя пакета com.android.settings.wfd, но я до сих пор не знаю, как чтобы открыть его, особенно я не знаю, как обращаться с именем активности, как этот

Настройки $ WifiDisplaySettingsActivity

Может кто-нибудь дать мне советы ??? плз .... спасибо много

проблема это settings.WIFI_DISPLAY_SETTINGS, но не ACTION_WIFI_SETTINGS, поэтому затмение не может скомпилировать

addional:

public final class WifiDisplaySettings extends SettingsPreferenceFragment implements PersistentGroupInfoListener { 
private static final String TAG = "WifiDisplaySettings"; 

private static final int MENU_ID_SCAN = Menu.FIRST; 
private static final int MENU_ID_CREATE_GROUP = Menu.FIRST + 1; 
private static final int MENU_ID_REMOVE_GROUP = Menu.FIRST + 2; 

это Настройка предпочтений Fragment ... так как я могу открыть его ?? ?

ответ

0

Используйте этот

ConnectivityManager manager = (ConnectivityManager) 
     getSystemService(MainActivity.CONNECTIVITY_SERVICE); 
/* 
* 3G confirm 
*/ 
Boolean is3g = manager.getNetworkInfo(
     ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting(); 
/* 
* wifi confirm 
*/ 
Boolean isWifi = manager.getNetworkInfo(
     ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting(); 
if (is3g) { 
    textView.setText("3G"); 
} else if (isWifi) { 
    textView.setText("wifi"); 
} else { 
    textView.setText("nothing"); 
    // Activity transfer to wifi settings 
    startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); 
} 

Это может помочь вам

+0

???, я имею в виду, я просто хочу запустить приложение для Android, но не подключиться к Wi-Fi. – Devon

+0

Я не знаю, что вы имеете в виду. – Devon

0

Использование

startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); 

Или

public void openWifiSettings(){ 

     final Intent intent = new Intent(Intent.ACTION_MAIN, null); 
     intent.addCategory(Intent.CATEGORY_LAUNCHER); 
     final ComponentName cn = new ComponentName("com.android.settings", "com.android.settings.wifi.WifiSettings"); 
     intent.setComponent(cn); 
     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivity(intent); 
    } 
+0

Я пробовал, но не работал.Он попадает на страницу настроек Wi-Fi, но не Wi-Display page – Devon

+0

благодарит мужчин ... но проблема в том, что это настройки. WIFI_DISPLAY_SETTINGS , но не ACTION_WIFI_SETTINGS, поэтому eclipse не может скомпилировать – Devon

1

startActivity (новый Intent ("android.settings.WIFI_DISPLAY_SETTINGS"));

2

Wireless Display Settings активность может быть вызвана через Intent "android.settings.WIFI_DISPLAY_SETTINGS". Некоторые производители используют другие намерения

Samsung: "com.samsung.wfd.LAUNCH_WFD_PICKER_DLG"

HTC: "com.htc.wifidisplay.CONFIGURE_MODE_NORMAL"

так, не гарантируется.

Я занимался той же проблемой и получил следующий код.

try { 
    Log.d("TAG", "open WiFi display settings in HTC"); 
    godController.getActivity().startActivity(new 
      Intent("com.htc.wifidisplay.CONFIGURE_MODE_NORMAL")); 
} catch (Exception e) { 
    try { 
    Log.d("TAG", "open WiFi display settings in Samsung"); 
    godController.getActivity().startActivity(new 
       Intent("com.samsung.wfd.LAUNCH_WFD_PICKER_DLG")); 
    } catch (Exception e2) { 
    Log.d("TAG", "open WiFi display settings in stock Android"); 
    godController.getActivity().startActivity(new 
       Intent("android.settings.WIFI_DISPLAY_SETTINGS")); 
    } 
} 

Пожалуйста, дайте мне знать, если это можно улучшить.

+1

Как вы узнали об этих нестандартные панели настроек? Мне нужно найти панель настроек miracast для Xperia Z3 –

+0

Вы не видите эти строки действия Intent View в https://developer.android.com/reference/android/provider/Settings.htm –

Смежные вопросы