Android SDK 版本号与版本名称对照及一个编程小技巧

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-02 01:39 点击:
前几天,为了解决一个问题,逆了一个小工具软件。在这个过程发现了一些很有用的东西,在此跟大家分享一下。首先声明几点:1、逆出来的代码,需要大量的人工分析,我现在只看了一点点;2、代码不会公开,请不要向我要代码,我怕麻烦~~~唉,做了这件坏事,内心忐~~~忑~~~啊!

一、通过编程实现对GPS的开关

  在Android手机和模拟器上有一个管理GPS开关的设置界面,如下:

    

  通过这个管理界面,我们可以对GPS进行管理,以实现我们的手机定位功能。曾经在网上搜集资料,希望找到通过代码对GPS进行管理的源码,也确实找到了一份代码(稍后附上代码),但是这份代码在SDK 2.3及以上的版本中,始终不能运行。于是,产生了一个逆向的邪念~

  在分析上面提到的小工具之后,发现了其对GPS管理的功能模块,经过简单的分析之后,发现在Android SDK版本不同的情况下,对GPS控制的代码还不一样。首先附上在2.2版本及以前版本的GPS控制代码:

/**
* 实现了一个GPS的开关,当前关闭则打开,当前打开则关闭
* 适用版本号:
* 1.6 / 2.1 / 2.2
*
* Uri.parse()的参数"custom:3"中的数字3的枚举值如下:
* private static final int BUTTON_BLUETOOTH = 4;
* private static final int BUTTON_BRIGHTNESS = 1;
* private static final int BUTTON_GPS = 3;
* private static final int BUTTON_SYNC = 2;
* private static final int BUTTON_WIFI = 0;
*
*/
private void toggleGPS() {
// 当SDK版本号为2.3以下版本时
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.GINGERBREAD) {
Intent gpsIntent
= new Intent();
gpsIntent.setClassName(
"com.android.settings",
"com.android.settings.widget.SettingsAppWidgetProvider");
gpsIntent.addCategory(
"android.intent.category.ALTERNATIVE");
gpsIntent.setData(Uri.parse(
"custom:3"));
try {
PendingIntent.getBroadcast(
this, 0, gpsIntent, 0).send();
}
catch (CanceledException e) {
e.printStackTrace();
}
}
}

  以上这段代码,是利用Android平台自带的Widget插件对各种开关进行管理的。实现的是一个GPS的开关,如果当前GPS处于关闭状态,则将其打开;如果GPS处于打开状态,则将其关闭。

  大家可能已经注意到函数体内部的第

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Android 完全退出程序
      • 原创:Android应用开发-Andorid歌词秀,含源码
      • android 屏幕保护
      • Android手机软件汉化教程---第四课 dex文件汉化
      • 众多Android 开源项目推荐,给力工作给力学习
      • Android Audio代码分析4
      • Android得到已安装的应用程序信息!
      • Android开发者指南(29) —— USB Host and Accessory
      • Android成长的幕后推手:工程师鲁宾
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1