1,android的style:

2,使用系统图标资源:

3,在activity切换的时候出现动画效果

4,手机定位

5 DevicePolicyManager 系统的服务 

6,广播接受者:

1,android的style:

  为了统一样式,通常我们采用style来实现,首先在res/values/新建一个styles.xml文件.如:

 <style name="title_text_style">        <item name="android:layout_width">fill_parent</item>        <item name="android:layout_height">wrap_content</item>        <item name="android:textSize">30sp</item>        <item name="android:textColor">#ff66ff00</item>        <item name="android:paddingTop">10px</item>        <item name="android:paddingLeft">5px</item>    </style>

  并且style是可以继承的,如

<style name="button_pre_style" parent="@style/button_next_style">        <item name="android:text">上一步</item>        <item name="android:drawableRight">@drawable/blank</item>        <item name="android:drawableLeft">@drawable/previous</item>        <item name="android:layout_alignParentRight">false</item>        <item name="android:layout_alignParentLeft">true</item>    </style>

2,使用系统图标资源:

  我们可以解压android.jar发现下面有很多的资源文件(如系统的image和动画),有的是可以用的,而有点是受保护的.

<item name="android:src">@android:drawable/presence_online</item>

3,在activity切换的时候出现动画效果

// activity切换的动画效果//param1表示第二个activity进入的效果//param2表示第一个activity退出的效果overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);

其中上面的动画就是系统的动画资源

4,手机定位

1>wifi定位,200--1000m
2>GPS定位 精度很高 精确度达到2-5m,如果在室内有天花板等物体可能接受不到卫星.

  获取gps的服务LocationManager

manager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);

  定义监听器

/**     * 用于从LocationManager接受通知,当位置改变了.     * 这些方法被调用如果LocationListener已经被注册到location manager service通过     * LocationManager.requestLocationUpdates(String, long, float,     * LocationListener)方法*/    private class MyLocationLinstener implements LocationListener {// 当位置发生改变的时候 调用的回调        public void onLocationChanged(Location location) {double latitude = location.getLatitude();double longitude = location.getLongitude();            Log.i(TAG, "weizhixinxi :" + latitude + "-" + longitude);            Editor editor = sp.edit();// 把经纬度存进sharedPreference里面            editor.putString("lastlocation", "weizhixinxi :" + latitude + "-"                    + longitude);            editor.commit();        }

        public void onStatusChanged(String provider, int status, Bundle extras) {        }

        public void onProviderEnabled(String provider) {        }

        public void onProviderDisabled(String provider) {        }    }

  获取最佳提供者

    /**     * 获取手机的最佳位置提供者*/    public String getProvider() {// 查询条件的组合 Criteria 类似于map集合        Criteria criteria = new Criteria();        criteria.setAltitudeRequired(false);        criteria.setCostAllowed(true);        criteria.setSpeedRequired(true);        criteria.setPowerRequirement(Criteria.POWER_LOW);return manager.getBestProvider(criteria, true);    }

  注册监听

public String getGPSInfo() {//注册监听,当发生变化的时候会执行监听里面的方法        manager.requestLocationUpdates(getProvider(), 60000, 100,getMyLocationLinstener());  //从sharedpreference里获取数据        String location = sp.getString("lastlocation", "");return location;    }

5 DevicePolicyManager 系统的服务

2.2以上的系统支持

如果某个程序注册成Admin设备,那么该程序可以执行如下操作:
1>清楚所有数据.也就是回复出厂设置,这回在不提示确定的情况西删除您的所有数据(模拟器不支持)
2>重置密码.强行更新密码,您需要获得管理员提供的新密码才能登录.
3>限制密码选择.限制您使用密码的类型.
4>监控登录尝试.监控对于登录设备和执行某项的操作的失败
5>强行锁定.控制何时锁定设备,这需要您重新输入密码.
并且一旦注册成功,那么就无法通过正常的方式卸载该程序.
可以在 "设置"-->"位置与安全"-->"选择设备管理器"把程序的勾选状态取消,就可以卸载了.

首先把aidl文件复制到src目录下:

注册admin设备

// 注册Admin设备        try {            Method method = Class.forName("android.os.ServiceManager")                    .getMethod("getService", String.class);            IBinder binder = (IBinder) method.invoke(null,new Object[] { Context.DEVICE_POLICY_SERVICE });            IDevicePolicyManager mService = IDevicePolicyManager.Stub                    .asInterface(binder);

            ComponentName mAdminName = new ComponentName(this, MyAdmin.class);if (mService != null) {if (!mService.isAdminActive(mAdminName)) {                    Intent intent = new Intent(                            DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);                    intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,                            mAdminName);                    startActivity(intent);                }            }        } catch (Exception e) {            e.printStackTrace();        }

定义Receiver

public class MyAdmin extends DeviceAdminReceiver {}

配置Receiver

        <receiver android:name=".receiver.MyAdmin" ><meta-dataandroid:name="android.app.device_admin"android:resource="@xml/device_admin" /><intent-filter ><action android:name="android.app.action.DEVICE_ADMIN_ENABLED" /></intent-filter></receiver>

xml/device_admin:
<device-admin xmlns:android="http://schemas.android.com/apk/res/android"><uses-policies><limit-password /><watch-login /><reset-password /><force-lock /><wipe-data /></uses-policies>
</device-admin>

  

运行效果:

6,广播接受者:

首先定义感兴趣的广播,如短信接受广播:

public class SmsReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {//具体逻辑代码}
}

然后注册广播即可

        <receiver android:name=".receiver.SmsReceiver" ><intent-filter android:priority="1000" ><action android:name="android.provider.Telephony.SMS_RECEIVED" ></action></intent-filter></receiver>

  

  

转载于:https://www.cnblogs.com/johnny901114/archive/2012/02/07/2341984.html

mobile_numen_3相关推荐

最新文章

  1. 周鸿祎:quot;安全大脑quot;将成智能经济时代的网络安全中枢
  2. python(1) - 输入和输出
  3. tictoc正方形网络模型_反卷积:可视化并理解卷积网络
  4. 搜索引擎学习(七)解析查询
  5. SQLServer 事务复制中使用脚本添加某个对象的发布
  6. mysql master 配置_MySQL双Master配置的方法详解
  7. 代换-置换网络(SP网络)
  8. Java工作笔记-Spring Boot + Jdbc + dm7Driver访问数据库(Spring Boot连接达梦数据库)
  9. 《C陷阱与缺陷》一第1章 词法“陷阱”1.1 =不同于==
  10. Netty工作笔记0044---Netty案例源码分析
  11. Python3.0的新改动
  12. css遮罩层从下往上_CSS:图片自带3px下边距的bug修复
  13. flutter去掉输入框最大字数显示
  14. 如何实现伸缩 (折叠) 报表?
  15. e5 e3 php,e3v3平台和e5平台怎么选择
  16. fullcalendar实现日程增、删、改、查
  17. rabbitmq User can only log in via localhost
  18. python为什么运行不了_终端里为什么无法运行python?
  19. Groovy 字符串
  20. CSS边框、边距、轮廓(边框宽度/颜色/各边/简写属性/圆角边框/内外边距/高度宽度/框模型/轮廓宽度/颜色/属性/偏移)——万字长文|一文搞懂

热门文章

  1. aida64副屏监控_“遥信”在电力监控系统中的重要作用
  2. pandas转mysql特定列_在pandas.DataFrame.to_sql时指定数据库表的列类型
  3. mysql timestamp 转型_MySQL的timestamp类型自动更新问题【转】
  4. 造句简单_零基础也能说一口流利英语,用简单的you are造句学英语
  5. java 顺序栈_java用顺序栈实现数制转换 求完整程序!!
  6. nginx添加stream模块1.20
  7. Rocket 架构设计
  8. 成都大学的计算机排名,成都除了成都大学,还有2所985、4所211,含金量很高
  9. shell脚本教学进阶——Linux三大文本处理工具之grep
  10. html创建php,php-从html创建图像