Android实战教程第六篇之一键锁屏应用问题解决

上一篇,初步开发了这个应用,功能都有了(见http://www.jb51.net/article/96992.htm 点击打开链接)。

但是遗留了两个问题:1、还是无法卸载;2、必须手动去点击应用程序进入程序,再点击按钮,这显得很麻烦。

这一篇就解决上面两个问题,做出最好的效果。

首先解决无法卸载问题:

在清单文件中,再配置一键卸载的主活动(两个主活动无所谓,只不过在桌面上显示两个图标而已,其实仍然是一个应用)

<activity android:name="com.itydl.lockscreen.Remove" android:label="一键卸载" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>

在新建的活动里面,写取消激活和卸载的代码:

package com.itydl.lockscreen; import android.app.Activity; import android.app.admin.DevicePolicyManager; import android.content.ComponentName; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; public class Remove extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // super.onCreate(savedInstanceState); setContentView(R.layout.activity_remove); } public void remove(View v){ //调用卸载的界面,要去上层源码中看一下卸载界面的意图是什么。通过查看源码,如下: /** * <intent-filter> <action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.DELETE" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="package" /> </intent-filter> */ //在卸载之前首先要取消设激活设备管理器 //获取设备管理器 DevicePolicyManager dpm = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE); ComponentName who = new ComponentName(this,DeviceAdminSample.class); dpm.removeActiveAdmin(who);//Remove a current administration component. This can only be called by the application that owns the administration component //卸载,启动卸载界面 Intent remove = new Intent("android.intent.action.DELETE"); remove.addCategory("android.intent.category.DEFAULT"); remove.setData(Uri.parse("package:"+getPackageName()));//表示卸载本程序,Return the name of this application's package. startActivity(remove);//卸载用户apk界面 } }

但是要注意一点,新建的一键卸载布局,一定做以下修改:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > --------------------这里一定修改。 <Button android:onClick="remove" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="一键卸载" /> </RelativeLayout>

运行程序,当用户想要卸载的时候,点击一键卸载进入卸载界面,即可对这个应用完成卸载了。
最后在用户体验上做点文章:
这个时候,一键锁屏是通过点击按钮实现的,为了省事,不要开启锁屏的界面。
把锁屏界面按钮全部删掉,背景设置为透明色

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#00000000"> ---------------------设置为透明色 </RelativeLayout>

在锁屏活动的onCreat方法里面加入一句代码:lockScreen(null);表示不需要任何view去启动点击事件。
这样打开应用的时候就调用lockScreen(View v)里面的锁屏或者开启设备管理器功能,代码如下:

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); dmp = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE); lockScreen(null); }

同时,一键卸载的应用也做以上同样的事情:

重新运行程序,一运行就进入激活设备管理器界面。现在把一键锁屏图标放置到主界面,一点击就锁屏,特别的方便。而且想卸载这个程序的时候,一点击就直接卸载掉了。

到现在为止,这个应用,完美开发完毕,秒杀市面上99%的一键锁屏应用。

下面是应用的截图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

时间: 2024-07-30 16:56:35

Android实战教程第六篇之一键锁屏应用问题解决的相关文章

Android实战教程第六篇之一键锁屏应用问题解决_Android

上一篇,初步开发了这个应用,功能都有了(见http://www.jb51.net/article/96992.htm 点击打开链接). 但是遗留了两个问题:1.还是无法卸载:2.必须手动去点击应用程序进入程序,再点击按钮,这显得很麻烦. 这一篇就解决上面两个问题,做出最好的效果. 首先解决无法卸载问题: 在清单文件中,再配置一键卸载的主活动(两个主活动无所谓,只不过在桌面上显示两个图标而已,其实仍然是一个应用) <activity android:name="com.itydl.locks

Android实战教程第五篇之一键锁屏应用_Android

Device Administration 对于这个应用,市场上很多,但是看一下评论就知道效果有多差了,因为99%一键锁屏应用没办法卸载.今天就开发一个小应用,实现轻松点击一键锁屏,同时支持卸载... 通查看谷歌原文档,有设备管理器的API,从这里可以抽取一些代码,开发出一个小应用,即即将介绍的<一键锁屏>. 根据文档翻译,获取设备管理器的大致步骤如下: 1.创建类DeviceAdminReceiver的子类 如:com.itydl.lockscreen.DeviceAdminSample 2

Android实战教程第八篇之短信备份_Android

各种手机助手里面都包含了短信备份这一项.短信的本分主要包含四项:内容body.事件date.方式type.号码address. 短信备份~一.使用一种很笨的方式来保存短信到xml文件中,而且保存在外部存储.后续会有:短信备份~二(xml序列化器):短信备份~三(内容提供者获取短信xml备份):短信备份~四(json方式备份数据库短信).备份的方式越来越高效,比较不同存储方式. 很显然,初次介绍短信备份,以一种简单笨拙的方式,且不涉及内容提供者,虚拟10条短信. 短信的保存,要以对象的形式保存.因

Android实战教程第十篇仿腾讯手机助手小火箭发射效果_Android

之前对系统自带的土司的源码做了简要分析,见博客:点击打开链接 这一篇给一个小案例,自定义土司,模拟腾讯卫士的小火箭发射.如果想要迅速看懂代码,建议先去看一下上篇介绍点击打开链接 首先,定义一个服务,在这个服务里面,完成土司的创建(小火箭布局创建),烟的效果属于动画播放,而且要依托一个activity.(这个activity要定义为透明状态) 定义烟的activity的布局文件 <?xml version="1.0" encoding="utf-8"?>

Android实战教程第三篇之简单实现拨打电话功能_Android

本文实例为大家分享了Android打电话功能的实现代码,需要一个文本输入框输入号码,需要一个按钮打电话. 本质:点击按钮,调用系统打电话功能. xml布局文件代码:: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="m

Android实战教程第十篇仿腾讯手机助手小火箭发射效果

之前对系统自带的土司的源码做了简要分析,见博客:点击打开链接 这一篇给一个小案例,自定义土司,模拟腾讯卫士的小火箭发射.如果想要迅速看懂代码,建议先去看一下上篇介绍点击打开链接 首先,定义一个服务,在这个服务里面,完成土司的创建(小火箭布局创建),烟的效果属于动画播放,而且要依托一个activity.(这个activity要定义为透明状态) 定义烟的activity的布局文件 <?xml version="1.0" encoding="utf-8"?>

Android实战教程第四篇之简单实现短信发送器_Android

本文实例为大家分享了Android发短信功能的实现方法,供大家参考,具体内容如下 首先配置一个布局: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_

Android实战教程第七篇之如何在内存中存储用户名和密码

本文实例为大家分享了Android内存中存储用户名和密码的方法,供大家参考,具体内容如下 首先是配置文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layo

Android编程实现的一键锁屏程序详解_Android

本文实例讲述了Android编程实现的一键锁屏程序.分享给大家供大家参考,具体如下: 据笔者了解,所有的Android手机都用电源键来手动锁屏.笔者使用手机时,一天之内手动锁屏的次数绝对不少于30次.如果都用电源键来进行的话,那么电源键的使用寿命一定不会长久. 虽然现在有很多的桌面软件都集成了一键锁屏,但是要安装这些软件就必须安装它们的其他组件,这点让人很不爽,因为他们会定期自动更新,或者在后台运行一些我不想要的东西.所以我决定自己写一个锁屏程序. 经过在android开发文档里面的查找,我发现