दिलचस्प पोस्ट
UITableViewCell उप-वर्ग के साथ "ऑटो लेआउट अभी भी क्रियान्वित करने के बाद आवश्यक -आउटआउटस्विव्यू" विंडोज स्टार्टअप पर जावा एप्लीकेशन चलाएं जावा में नंबर के लिए अग्रणी शून्य जोड़ें? इकाई फ़्रेमवर्क (ईएफ) कोड प्रथम कैसकेड एक-से-शून्य-या-एक संबंध के लिए हटाएं नोड। जेएसएस के साथ MySQL पायथन – 'एएससीआई' कोडेक बाइट को डीकोड नहीं कर सकता JQuery में प्रत्येक () फ़ंक्शन को कैसे तोड़ने / बाहर निकलना है? SQL सर्वर के लिए MySQL LIMIT खंड समकक्ष एक div के भीतर चर ऊंचाई के साथ ऊर्ध्वाधर केंद्र कैसे करें? कार्यक्रम में आईओएस में अपना फोन नंबर मिलता है क्या एक विशिष्ट पंक्ति को अनदेखा कर सकते हैं? एंड्रॉइड डेवलपमेंट के लिए कोई अच्छा ओआरएम टूल? एंड्रॉइड में स्थान श्रोता के साथ पृष्ठभूमि सेवा रिफ्लेक्शन के साथ राइट जेनेरिक मेथड चुनें पता लगाएँ कि ब्राउज़र फ़ाइल डाउनलोड कब प्राप्त करता है

एंड्रॉइड में हवाई जहाज मोड टॉगल करें

मुझसे कोई गलती हो गई क्य? यह काम नहीं कर रहा है।

public void airplane() { boolean isEnabled = Settings.System.getInt(this.getApplicationContext().getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) == 1; Settings.System.putInt(context.getContentResolver(),Settings.System.AIRPLANE_MODE_ON,isEnabled ? 0 : 1); //Settings.System.putInt(this.getApplicationContext().getContentResolver(),Settings.System.AIRPLANE_MODE_ON,isEnabled ? 0 : 1); Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); } 

वेब के समाधान से एकत्रित समाधान "एंड्रॉइड में हवाई जहाज मोड टॉगल करें"

इस उत्तर में ऐसा करने के लिए कोड आवश्यक है। यह भी सुनिश्चित करें कि आपके पास WRITE_SETTINGS अनुमति है।

हवाई जहाज मोड को नियंत्रित करने से अनुकूलित:

 // read the airplane mode setting boolean isEnabled = Settings.System.getInt( getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) == 1; // toggle airplane mode Settings.System.putInt( getContentResolver(), Settings.System.AIRPLANE_MODE_ON, isEnabled ? 0 : 1); // Post an intent to reload Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); intent.putExtra("state", !isEnabled); sendBroadcast(intent); 

निहित डिवाइस पर निम्नलिखित का उपयोग किया जा सकता है

कमांडलाइन से, आप एयरप्लेन मोड चालू / बंद कर सकते हैं निम्नलिखित के साथ:

 ON: settings put global airplane_mode_on 1 am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true OFF: settings put global airplane_mode_on 0 am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false 

यह एंड्रॉइड 4.4.2+ के साथ काम करता है

मुझे लगता है कि "Settings.System.AIRPLANE_MODE_ON" नापसंद है, I का उपयोग करते हुए:

 public class AirplaneModeService { public boolean run(Context context) { boolean isEnabled = isAirplaneModeOn(context); // Toggle airplane mode. setSettings(context, isEnabled?1:0); // Post an intent to reload. Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); intent.putExtra("state", !isEnabled); context.sendBroadcast(intent); return true; } public static boolean isAirplaneModeOn(Context context) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) { return Settings.System.getInt(context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) != 0; } else { return Settings.Global.getInt(context.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0) != 0; } } public static void setSettings(Context context, int value) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) { Settings.System.putInt( context.getContentResolver(), Settings.System.AIRPLANE_MODE_ON, value); } else { Settings.Global.putInt( context.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, value); } } } 

मुझे आशा है कि यह मदद किसी को

सभी एपीआई संस्करणों के लिए काम करता है

  • एपीआई <17 के लिए स्विच ऑथोटमैटिकल
  • API> = 17 के लिए उपयोगकर्ता क्रियाओं के लिए एयरप्लेन मोड की डिफ़ॉल्ट गतिविधि खोलें

कोई जड़ नहीं, कोई सिस्टम स्तर की अनुमति नहीं !


AndroidManifest.xml में अनुमति जोड़ें:

 <!--airplane mode--> <uses-permission android:name="android.permission.WRITE_SETTINGS"/> 

फिर:

 @SuppressWarnings("deprecation") private void initAirplanemodeBtn() { airplanemodeButton = (ToggleButton) findViewById(R.id.airplanemode_btn); airplanemodeButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (android.os.Build.VERSION.SDK_INT < 17) { try { // read the airplane mode setting boolean isEnabled = Settings.System.getInt( getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) == 1; // toggle airplane mode Settings.System.putInt( getContentResolver(), Settings.System.AIRPLANE_MODE_ON, isEnabled ? 0 : 1); // Post an intent to reload Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); intent.putExtra("state", !isEnabled); sendBroadcast(intent); } catch (ActivityNotFoundException e) { Log.e(TAG, e.getMessage()); } } else { try { Intent intent = new Intent(android.provider.Settings.ACTION_AIRPLANE_MODE_SETTINGS); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } catch (ActivityNotFoundException e) { try { Intent intent = new Intent("android.settings.WIRELESS_SETTINGS"); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } catch (ActivityNotFoundException ex) { Toast.makeText(buttonView.getContext(), R.string.not_able_set_airplane, Toast.LENGTH_SHORT).show(); } } } } }); } 

जैसा कि हवाई जहाज मोड को टाल करने के बारे में बताया गया है, संस्करण 4.2 और ऊपर से नहीं किया जा सकता है।

लेकिन हम क्या कर सकते हैं वायरलेस सेवाओं में से प्रत्येक को बदलना है:

वाईफ़ाई को वाईफ़ाई सेवा ~ getSystemService (संदर्भ। WIFI_SERVICE) का उपयोग कर नियंत्रित किया जा सकता है। BluetoothAdapter- getSystemService (context.BLUETOOTH_SERVICE) का उपयोग करके ब्लूटूथ को नियंत्रित किया जा सकता है।

कुछ शोध के बाद मैंने पाया कि जावा रिफ्लेक्शन का उपयोग करके आप एंड्रॉइड रेडियोज (वाईफ़ाई, नेटवर्क, ब्लूटूथ) को नियंत्रित कर सकते हैं जो मूल रूप से एयरपले मोड को ब्लूटूथ, वाईफ़ाई और नेटवर्क की स्थिति को टॉगल करता है।

तो रेडियोज को नियंत्रित करके आप प्रभावी रूप से अपना हवाई जहाज मोड बना सकते हैं।

चेतावनी: प्रतिबिंब का उपयोग कुछ उपकरणों पर विफल हो सकता है (कक्षाओं के निर्माता कार्यान्वयन पर निर्भर करता है)।

यह नमूना कोड मोबाइल नेटवर्क को टॉगल करता है:

 private void setMobileRadioEnabled(boolean enabled) { try { final ConnectivityManager conman = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); final Class conmanClass = Class.forName(conman.getClass().getName()); final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService"); iConnectivityManagerField.setAccessible(true); final Object iConnectivityManager = iConnectivityManagerField.get(conman); final Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName()); final Method setRadio = iConnectivityManagerClass.getDeclaredMethod("setRadio", Integer.TYPE , Boolean.TYPE); setRadio.setAccessible(true); for (NetworkInfo networkInfo : conman.getAllNetworkInfo()) { if(isNetworkTypeMobile(networkInfo.getType())) { setRadio.invoke(iConnectivityManager, networkInfo.getType(), enabled); } } } catch (Exception e) { Log.e(TAG, "Opss...", e); } } public static boolean isNetworkTypeMobile(int networkType) { switch (networkType) { case ConnectivityManager.TYPE_MOBILE: case ConnectivityManager.TYPE_MOBILE_MMS: case ConnectivityManager.TYPE_MOBILE_SUPL: case ConnectivityManager.TYPE_MOBILE_DUN: case ConnectivityManager.TYPE_MOBILE_HIPRI: case 10: case 11: case 12: case 14: return true; default: return false; } } 

यहां हर सेटिंग एंड्रॉइड का उपयोग करने से पहले.इस तरह से प्रोजेक्टर:

 public class MainActivity extends Activity implements OnClickListener { Button air; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); air = (Button) findViewById(R.id.button1); air.setOnClickListener(this); } @Override public void onClick(View arg0) { // TODO Auto-generated method stub // read the airplane mode setting boolean isEnabled = android.provider.Settings.System.getInt( getContentResolver(), android.provider.Settings.System.AIRPLANE_MODE_ON, 0) == 1; // toggle airplane mode android.provider.Settings.System.putInt( getContentResolver(), android.provider.Settings.System.AIRPLANE_MODE_ON, isEnabled ? 0 : 1); // Post an intent to reload Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); intent.putExtra("state", !isEnabled); sendBroadcast(intent); } } 

लॉलीपॉप के बाद, आप नीचे विधि का उपयोग कर सकते हैं, लेकिन यह गुप्त एपीआई है और आपके एप्लिकेशन को सिस्टम स्तर की अनुमति की आवश्यकता है

 <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL"/> ConnectivityManager mgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); mgr.setAirplaneMode(true); 

ध्यान दें, जैसा कि एंड्रॉइड 4.2 एपीआई (जोर दिया गया) के तहत प्रलेखित है:

नई वैश्विक सेटिंग

सेटिंग्स के अतिरिक्त के साथ कई उपयोगकर्ताओं को समर्थन करने के लिए सिस्टम सेटिंग्स को अद्यतन किया गया है। Settings.Global सेटिंग्स का यह संग्रह सेटिंग्स के समान है। सुरक्षित सेटिंग्स क्योंकि वे केवल-पढ़ने के लिए हैं, लेकिन डिवाइस पर सभी उपयोगकर्ता स्थानों पर विश्व स्तर पर लागू होते हैं।

यहां कई मौजूदा सेटिंग्स को या तो Settings.System से स्थानांतरित किया गया था। Settings.System या Settings.Secure । यदि आपका ऐप सेटिंग्स में पहले से परिभाषित की गई Settings.System में बदलाव कर रहा है। सिस्टम (जैसे कि AIRPLANE_MODE_ON ), तो आपको उम्मीद करनी चाहिए कि ऐसा करने से एंड्रॉइड 4.2 या उच्चतर चलने वाले डिवाइस पर काम नहीं किया जाएगा, यदि वे सेटिंग्स सेटिंग्स में चले गए। Settings.Global आप Settings.Global में हैं सेटिंग को पढ़ना जारी रख सकते हैं, लेकिन क्योंकि ऐप को परिवर्तित करने के लिए सेटिंग्स अब सुरक्षित नहीं माना जाता है, ऐसा करने का प्रयास करने से चुपचाप विफल हो जाएगा और सिस्टम आपके लॉग ऑन पर चलने पर सिस्टम लॉग पर एक चेतावनी लिखेंगे एंड्रॉइड 4.2 या उच्चतर

यह मेरे लिए काम करता है

 public static boolean isAirplaneModeOn() { return Settings.System.getInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0) != 0; } public static void setAirPlaneMode(boolean airplaneMode) { Logger.d(LOG_TAG + "setAirPlaneMode airplaneMode: " + airplaneMode) ; int state = airplaneMode ? 1 : 0; Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, state); Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED); intent.putExtra("state", state); mContext.sendBroadcast(intent); } 

लेकिन आपको सिस्टम अनुमति की आवश्यकता है हालांकि

 <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> 

अगर आप इंटरनेट को बंद करना चाहते हैं तो मुझे यह काम 17+ के लिए मिलेगा।

अनुमति

 <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> 

तरीका

 @SuppressWarnings({ "unchecked", "rawtypes" }) private void setMobileDataEnabled(boolean state) { try { final ConnectivityManager conman = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); final Class conmanClass = Class.forName(conman.getClass().getName()); final Field iConnectivityManagerField = conmanClass.getDeclaredField("mService"); iConnectivityManagerField.setAccessible(true); final Object iConnectivityManager = iConnectivityManagerField.get(conman); final Class iConnectivityManagerClass = Class.forName(iConnectivityManager.getClass().getName()); final Method setMobileDataEnabledMethod = iConnectivityManagerClass.getDeclaredMethod("setMobileDataEnabled", Boolean.TYPE); setMobileDataEnabledMethod.setAccessible(true); setMobileDataEnabledMethod.invoke(iConnectivityManager, state); } catch (Exception e) { e.printStackTrace(); } }