एडीबी डिस्कनेक्ट किए बिना कोड का उपयोग कर मोबाइल डेटा (जीपीआरएस) सक्षम/अक्षम करें

I have to enable/disable data in the same usecase, that i used code given here How to disable Mobile Data on Android

private void setMobileDataEnabled(Context context, boolean enabled) {
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, enabled);

}

लेकिन समस्या यह है कि जब मैं झूठ बोल रहा हूं तो यह एडीबी से डिस्कनेक्ट हो रहा है। क्या हम एडीबी डिस्कनेक्ट किए बिना डेटा अक्षम कर सकते हैं

झूठ बोलते समय लॉगकैट जोड़ना

12-10 12:18:20.261: D/ConnectivityService(150): setMobileDataEnabled(false)
12-10 12:18:20.321: W/BackupManagerService(150): dataChanged but no participant             pkg='com.android.providers.settings' uid=1001
12-10 12:18:20.681: D/ConnectivityService(150): ConnectivityChange for mobile: DISCONNECTED/DISCONNECTED
12-10 12:18:20.691: D/ConnectivityService(150): Attempting to switch to wifi
12-10 12:18:20.811: D/dalvikvm(233): GC_CONCURRENT freed 505K, 7% free 8848K/9479K, paused 91ms+112ms, total 443ms
12-10 12:18:20.821: D/ConnectivityService(150): resetConnections(eth0, 3)
12-10 12:18:20.821: D/NetUtils(150): android_net_utils_resetConnections in  env=0x2a13bfc8 clazz=0x7be00001 iface=eth0 mask=0x3
: E/(): Device disconnected
0
@ डेविड वासर ने झूठ बोलने के लिए लॉगकैट जोड़ा। क्या आप कुछ उपयोगी जानकारी प्रदान कर सकते हैं - धन्यवाद
जोड़ा लेखक ashishdd, स्रोत
यह केवल एम्यूलेटर पर हो रहा है।
जोड़ा लेखक ashishdd, स्रोत
इस तरह से मोबाइल डेटा को अक्षम करने से एडीबी कनेक्शन पर कोई असर नहीं पड़ेगा। यदि आपके ऐप से आपका एडीबी कनेक्शन डिस्कनेक्ट हो गया है, तो आपका ऐप शायद क्रैश हो रहा है। अपने लॉगकैट की जांच करें।
जोड़ा लेखक David Wasser, स्रोत
क्षमा करें, मैंने कभी भी एक एमुलेटर पर ऐसा करने की कोशिश नहीं की है। मैं किसी भी एमुलेटर पर व्यवहार पर भरोसा नहीं करता क्योंकि वैसे भी टेलीफ़ोनी कोड डिवाइस निर्माताओं द्वारा अनुकूलित किया जा सकता है।
जोड़ा लेखक David Wasser, स्रोत

1 उत्तर

public void onClick(View view){
        ConnectivityManager dataManager;
        dataManager  = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
        Method dataMtd = null;
        try {
            dataMtd = ConnectivityManager.class.getDeclaredMethod("setMobileDataEnabled", boolean.class);
        } catch (NoSuchMethodException e) {
           //TODO Auto-generated catch block
            e.printStackTrace();
        }
        dataMtd.setAccessible(true);
        try {
            dataMtd.invoke(dataManager, true);
        } catch (IllegalArgumentException e) {
           //TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalAccessException e) {
           //TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InvocationTargetException e) {
           //TODO Auto-generated catch block
            e.printStackTrace();
        }   
    }
0
जोड़ा
यहां भी मुझे एक ही त्रुटि मिल रही है, यह एमुलेटर के साथ आ रहा है।
जोड़ा लेखक ashishdd, स्रोत