android 在锁屏状态下打开GPRS

我的android手机在开锁的时候要使用滑动解锁,但是尝试的次数貌似只有30次。

前几天我的手机被同学拿去,结果他不知道密码所以就一直在不断的尝试,结果尝试的次数太多,手

 
机开启了锁定模式,只有使用谷歌帐号登录才能解锁手机!!

 

谷歌帐号我当然有,可是但是我的手机GPR关闭了,直接导致我的帐号登录不了啊!!重启也不行!最后我认为只有刷机了。。。

 

当我和另一个同学提起的时候,他给了我一个非常的方法----直接写一个小软件通过电脑

 
安装到手机上直接打开手机的GPRS,或者在电脑上用adb 命令直接打开GPRS! 结果我在网上找了半天也没有找到adb 相关的命令。。。最后只能通过写一个小apk来实现了

在网上搜索了android 开启相关权限的配置文件之后就准备自写一个demo 。。。但是自己水平有限,写不出来!!还是网上的大神给力啊!!

 

添加的权限如下 

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

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

 

 

Java代码如下

 

 

package com.kress.gprs;

import java.lang.reflect.Method;

import android.app.Activity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public  class GprsTestActivity  extends Activity
{
     private ConnectivityManager mCM;
    
     private Button openButton;
     private Button shutButton;
    
     /**  Called when the activity is first created.  */
    @Override
     public  void onCreate(Bundle savedInstanceState)
    {
         super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        mCM = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
        
        openButton = (Button)findViewById(R.id.btnOpen);
        shutButton = (Button)findViewById(R.id.btnShut);
        openButton.setOnClickListener(btnListener);
        shutButton.setOnClickListener(btnListener);

                
                 // setGprsEnable("setMobileDataEnabled", bEnable);只要把这句代码的注释去掉,运行程序到手机就可以立即打开手机的GPRS了


    }
    
     private Button.OnClickListener btnListener =  new Button.OnClickListener()
    {

        @Override
         public  void onClick(View v)
        {
             switch (v.getId())
            {
             case R.id.btnOpen:
                
                gprsEnable( true);
                 break;
             case R.id.btnShut:
                
                gprsEnable( false);
                 break;
             default:
                 break;
            }
        }
        
    };
    
     // 打开或关闭GPRS
     private  boolean gprsEnable( boolean bEnable)
    {
        Object[] argObjects =  null;
                
         boolean isOpen = gprsIsOpenMethod("getMobileDataEnabled");
         if(isOpen == !bEnable)
        {
            setGprsEnable("setMobileDataEnabled", bEnable);
        }
        
         return isOpen;    
    }
    
     // 检测GPRS是否打开
     private  boolean gprsIsOpenMethod(String methodName)
    {
        Class cmClass         = mCM.getClass();
        Class[] argClasses     =  null;
        Object[] argObject     =  null;
        
        Boolean isOpen =  false;
         try
        {
            Method method = cmClass.getMethod(methodName, argClasses);

            isOpen = (Boolean) method.invoke(mCM, argObject);
        }  catch (Exception e)
        {
            e.printStackTrace();
        }

         return isOpen;
    }
    
     // 开启/关闭GPRS
     private  void setGprsEnable(String methodName,  boolean isEnable)
    {
        Class cmClass         = mCM.getClass();
        Class[] argClasses     =  new Class[1];
        argClasses[0]         =  boolean. class;
        
         try
        {
            Method method = cmClass.getMethod(methodName, argClasses);
            method.invoke(mCM, isEnable);
        }  catch (Exception e)
        {
            e.printStackTrace();
        }
    }

 

在电脑上通过调试模式将apk直接安装在手机上,然后就看见GPRS被打开了,我输入谷歌帐号,直接就登录成功了。 

当然我的手机成功解锁了,避免了刷机的麻烦~哈哈 

 

 

最后附上我的工程 apk 

http://files.cnblogs.com/qinyg/GprsTest.apk

首先adb install GprsTest.apk

然后 adb shell am start -n com.kress.gprs/com.kress.gprs.GprsTestActivity  

打开此应用,手机就会自动打开GPRS了

 

 

你可能感兴趣的:(android)