کلیدستان

نسخه‌ی کامل: غیر فعال کردن و فعال کردن اینترنت
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام 
من در برنامم یک buuton دارم که میخوام وقتی کلیک شد اگه اینترنت غیر فعال است فعالش کنه و برعکس (یرای اندروید 5)
با گرفتن حالت اینترنت مشکلی ندارم فقط نمیدونم چطور  اینترنت غیر فعال است فعالش کنه و برعکس 
از تمام دوستانی که راهنمایی میکنند تشکر میکنم
(۱۳۹۸/۰۵/۲۷, ۱۰:۴۵ ق.ظ)mahan نوشته: [ -> ]سلام 
من در برنامم یک buuton دارم که میخوام وقتی کلیک شد اگه اینترنت غیر فعال است فعالش کنه و برعکس (یرای اندروید 5)
با گرفتن حالت اینترنت مشکلی ندارم فقط نمیدونم چطور  اینترنت غیر فعال است فعالش کنه و برعکس 
از تمام دوستانی که راهنمایی میکنند تشکر میکنم

سلام امیدوارم کد زیر بهت کمکی کرده باشه، البته شاید تا الان جوابت رو بدست آورده باشی؛ یه تابع است مقدار true و false بهت برمیگردونه میتونی switch button جوابشو نمایش بدی، البته دوتا کلاس داره تو این تابع اگه import بودن تو کتابخونت که چه بهتر اگه نبودن بگو دستی برات ارسال کنم
کد:
boolean DataOnOff(boolean status, Context context) {
 int bv = 0;
   try {
    if (bv == Build.VERSION_CODES.FROYO){
    
    Method dataConnSwitchmethod;
    Class<?> telephonyManagerClass;
    Object ITelephonyStub;
    Class<?> ITelephonyClass;

    TelephonyManager telephonyManager = (TelephonyManager) context
        .getSystemService(Context.TELEPHONY_SERVICE);

    telephonyManagerClass = Class.forName(telephonyManager
        .getClass().getName());
    Method getITelephonyMethod = telephonyManagerClass
        .getDeclaredMethod("getITelephony");
    getITelephonyMethod.setAccessible(true);
    ITelephonyStub = getITelephonyMethod.invoke(telephonyManager);
    ITelephonyClass = Class.forName(ITelephonyStub.getClass()
        .getName());

        if (status) {
            dataConnSwitchmethod = ITelephonyClass
                .getDeclaredMethod("enableDataConnectivity");
        } else {
            dataConnSwitchmethod = ITelephonyClass
                .getDeclaredMethod("disableDataConnectivity");
        }
        dataConnSwitchmethod.setAccessible(true);
        dataConnSwitchmethod.invoke(ITelephonyStub);

    } else {
    
    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, status);
    }

    return true;
    
    } catch (Exception e) {
    Log.e("Mobile Data", "error turning on/off data");

    return false;
    }

}
(۱۳۹۸/۰۶/۰۹, ۱۰:۵۱ ب.ظ)e.mahi نوشته: [ -> ]
(۱۳۹۸/۰۵/۲۷, ۱۰:۴۵ ق.ظ)mahan نوشته: [ -> ]سلام 
من در برنامم یک buuton دارم که میخوام وقتی کلیک شد اگه اینترنت غیر فعال است فعالش کنه و برعکس (یرای اندروید 5)
با گرفتن حالت اینترنت مشکلی ندارم فقط نمیدونم چطور  اینترنت غیر فعال است فعالش کنه و برعکس 
از تمام دوستانی که راهنمایی میکنند تشکر میکنم

سلام امیدوارم کد زیر بهت کمکی کرده باشه، البته شاید تا الان جوابت رو بدست آورده باشی؛ یه تابع است مقدار true و false بهت برمیگردونه میتونی switch button جوابشو نمایش بدی، البته دوتا کلاس داره تو این تابع اگه import بودن تو کتابخونت که چه بهتر اگه نبودن بگو دستی برات ارسال کنم
کد:
boolean DataOnOff(boolean status, Context context) {
 int bv = 0;
   try {
    if (bv == Build.VERSION_CODES.FROYO){
    
    Method dataConnSwitchmethod;
    Class<?> telephonyManagerClass;
    Object ITelephonyStub;
    Class<?> ITelephonyClass;

    TelephonyManager telephonyManager = (TelephonyManager) context
        .getSystemService(Context.TELEPHONY_SERVICE);

    telephonyManagerClass = Class.forName(telephonyManager
        .getClass().getName());
    Method getITelephonyMethod = telephonyManagerClass
        .getDeclaredMethod("getITelephony");
    getITelephonyMethod.setAccessible(true);
    ITelephonyStub = getITelephonyMethod.invoke(telephonyManager);
    ITelephonyClass = Class.forName(ITelephonyStub.getClass()
        .getName());

        if (status) {
            dataConnSwitchmethod = ITelephonyClass
                .getDeclaredMethod("enableDataConnectivity");
        } else {
            dataConnSwitchmethod = ITelephonyClass
                .getDeclaredMethod("disableDataConnectivity");
        }
        dataConnSwitchmethod.setAccessible(true);
        dataConnSwitchmethod.invoke(ITelephonyStub);

    } else {
    
    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, status);
    }

    return true;
    
    } catch (Exception e) {
    Log.e("Mobile Data", "error turning on/off data");

    return false;
    }

}

سلام ممنون از راهنمایی شما دوست عزیز حالا اگه بخوام روی api =>23 انجام بدم  کار نمیکنه و خطا میده 

ممنون میشم راهنمایی کنید