亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android實(shí)戰(zhàn)教程第六篇之一鍵鎖屏應(yīng)用問(wèn)題解決

 更新時(shí)間:2016年11月10日 14:26:03   作者:楊道龍  
這篇文章主要為大家詳細(xì)介紹了Android一鍵鎖屏應(yīng)用開(kāi)發(fā)過(guò)程中出現(xiàn)問(wèn)題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

上一篇,初步開(kāi)發(fā)了這個(gè)應(yīng)用,功能都有了(見(jiàn)http://chabaoo.cn/article/96992.htm 點(diǎn)擊打開(kāi)鏈接)。

但是遺留了兩個(gè)問(wèn)題:1、還是無(wú)法卸載;2、必須手動(dòng)去點(diǎn)擊應(yīng)用程序進(jìn)入程序,再點(diǎn)擊按鈕,這顯得很麻煩。

這一篇就解決上面兩個(gè)問(wèn)題,做出最好的效果。

首先解決無(wú)法卸載問(wèn)題:

在清單文件中,再配置一鍵卸載的主活動(dòng)(兩個(gè)主活動(dòng)無(wú)所謂,只不過(guò)在桌面上顯示兩個(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)里面,寫(xiě)取消激活和卸載的代碼:

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)用卸載的界面,要去上層源碼中看一下卸載界面的意圖是什么。通過(guò)查看源碼,如下: 
  /** 
   * <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í)候,一鍵鎖屏是通過(guò)點(diǎn)擊按鈕實(shí)現(xiàn)的,為了省事,不要開(kāi)啟鎖屏的界面。
把鎖屏界面按鈕全部刪掉,背景設(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)擊事件。
這樣打開(kāi)應(yīng)用的時(shí)候就調(diào)用lockScreen(View v)里面的鎖屏或者開(kāi)啟設(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)用,完美開(kāi)發(fā)完畢,秒殺市面上99%的一鍵鎖屏應(yīng)用。

下面是應(yīng)用的截圖:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論