我的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了