Android實(shí)戰(zhàn)教程第六篇之一鍵鎖屏應(yīng)用問題解決
上一篇,初步開發(fā)了這個(gè)應(yīng)用,功能都有了(見http://www.dbjr.com.cn/article/96992.htm 點(diǎn)擊打開鏈接)。
但是遺留了兩個(gè)問題:1、還是無法卸載;2、必須手動(dòng)去點(diǎn)擊應(yīng)用程序進(jìn)入程序,再點(diǎn)擊按鈕,這顯得很麻煩。
這一篇就解決上面兩個(gè)問題,做出最好的效果。
首先解決無法卸載問題:
在清單文件中,再配置一鍵卸載的主活動(dòng)(兩個(gè)主活動(dòng)無所謂,只不過在桌面上顯示兩個(gè)圖標(biāo)而已,其實(shí)仍然是一個(gè)應(yīng)用)
<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>
在新建的活動(dòng)里面,寫取消激活和卸載的代碼:
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){
//調(diào)用卸載的界面,要去上層源碼中看一下卸載界面的意圖是什么。通過查看源碼,如下:
/**
* <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>
*/
//在卸載之前首先要取消設(shè)激活設(shè)備管理器
//獲取設(shè)備管理器
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
//卸載,啟動(dòng)卸載界面
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界面
}
}
但是要注意一點(diǎn),新建的一鍵卸載布局,一定做以下修改:
<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>
運(yùn)行程序,當(dāng)用戶想要卸載的時(shí)候,點(diǎn)擊一鍵卸載進(jìn)入卸載界面,即可對(duì)這個(gè)應(yīng)用完成卸載了。
最后在用戶體驗(yàn)上做點(diǎn)文章:
這個(gè)時(shí)候,一鍵鎖屏是通過點(diǎn)擊按鈕實(shí)現(xiàn)的,為了省事,不要開啟鎖屏的界面。
把鎖屏界面按鈕全部刪掉,背景設(shè)置為透明色
<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"> ---------------------設(shè)置為透明色 </RelativeLayout>
在鎖屏活動(dòng)的onCreat方法里面加入一句代碼:lockScreen(null);表示不需要任何view去啟動(dòng)點(diǎn)擊事件。
這樣打開應(yīng)用的時(shí)候就調(diào)用lockScreen(View v)里面的鎖屏或者開啟設(shè)備管理器功能,代碼如下:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
dmp = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
lockScreen(null);
}
同時(shí),一鍵卸載的應(yīng)用也做以上同樣的事情:
重新運(yùn)行程序,一運(yùn)行就進(jìn)入激活設(shè)備管理器界面?,F(xiàn)在把一鍵鎖屏圖標(biāo)放置到主界面,一點(diǎn)擊就鎖屏,特別的方便。而且想卸載這個(gè)程序的時(shí)候,一點(diǎn)擊就直接卸載掉了。
到現(xiàn)在為止,這個(gè)應(yīng)用,完美開發(fā)完畢,秒殺市面上99%的一鍵鎖屏應(yīng)用。
下面是應(yīng)用的截圖:

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android實(shí)用的代碼片段 常用代碼總結(jié)
這篇文章主要介紹了Android實(shí)用的代碼片段 常用代碼總結(jié),需要的朋友可以參考下2014-09-09
Android中退出確認(rèn)框的實(shí)現(xiàn)代碼
這篇文章主要介紹了Android中退出確認(rèn)框的實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-05-05
Android實(shí)現(xiàn)開機(jī)自動(dòng)啟動(dòng)Service或app的方法
這篇文章主要介紹了Android實(shí)現(xiàn)開機(jī)自動(dòng)啟動(dòng)Service或app的方法,結(jié)合實(shí)例形式分析了Android開機(jī)自啟動(dòng)程序的具體步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-07-07
Android自定義View實(shí)現(xiàn)箭頭沿圓轉(zhuǎn)動(dòng)實(shí)例代碼
這篇文章主要介紹了Android自定義View實(shí)現(xiàn)箭頭沿圓轉(zhuǎn)動(dòng)實(shí)例代碼,需要的朋友可以參考下2017-09-09
Android實(shí)現(xiàn)截屏方式整理(總結(jié))
本篇文章主要介紹了Android 截屏方式整理(總結(jié)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07
完美解決Android App啟動(dòng)頁有白屏閃過的問題
這篇文章主要介紹了完美解決Android App啟動(dòng)頁有白屏閃過的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08
Android Studio 恢復(fù)小窗口停靠模式(Docked Mode)
Android開發(fā)實(shí)現(xiàn)日期時(shí)間控件選擇

