最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android實(shí)戰(zhàn)教程第五篇之一鍵鎖屏應(yīng)用

 更新時(shí)間:2016年11月10日 14:13:49   作者:楊道龍  
這篇文章主要為大家詳細(xì)介紹了Android實(shí)戰(zhàn)教程第五篇之一鍵鎖屏應(yīng)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Device Administration

對于這個應(yīng)用,市場上很多,但是看一下評論就知道效果有多差了,因?yàn)?9%一鍵鎖屏應(yīng)用沒辦法卸載。今天就開發(fā)一個小應(yīng)用,實(shí)現(xiàn)輕松點(diǎn)擊一鍵鎖屏,同時(shí)支持卸載。。。

通查看谷歌原文檔,有設(shè)備管理器的API,從這里可以抽取一些代碼,開發(fā)出一個小應(yīng)用,即即將介紹的《一鍵鎖屏》。
根據(jù)文檔翻譯,獲取設(shè)備管理器的大致步驟如下:

1、創(chuàng)建類DeviceAdminReceiver的子類

如:com.itydl.lockscreen.DeviceAdminSample

2、在清單文件中配置廣播接收者

<receiver
  android:name="com.itydl.lockscreen.DeviceAdminSample"
  android:description="@string/sample_device_admin_description"
  android:label="@string/sample_device_admin"
  android:permission="android.permission.BIND_DEVICE_ADMIN" >
  <meta-data
   android:name="android.app.device_admin"
   android:resource="@xml/device_admin_sample" />

  <intent-filter>
   <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
  </intent-filter>
 </receiver>

3、配置字符串相關(guān)信息

 <string name="activity_sample_device_admin">設(shè)備管理員</string>
<string name="sample_device_admin">管理員</string>
<string name="sample_device_admin_description">開啟設(shè)備管理員,不開啟扣2000塊</string>

4、在res目錄下創(chuàng)建xml文件夾,在該文件夾下創(chuàng)建deviceadminsample.xml文件,內(nèi)容:

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

5、在代碼中創(chuàng)建設(shè)備管理器和組件

dpm = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
 ComponentName who = new ComponentName(this, DeviceAdminSample.class);

6、功能

dpm.lockNow();一鍵鎖屏

上述步驟有些晦澀,看一下實(shí)際操作步驟(建議通過閱讀官網(wǎng)AP文檔I一步步操作):

1)、把下方官方文檔給出的配置文件的代碼復(fù)制到自己創(chuàng)建的工程里面:


復(fù)制過去發(fā)現(xiàn)報(bào)錯了,因?yàn)槿龡l描述屬性信息沒有配置,那么去String.xml中配置以下三條信息:

<string name="activity_sample_device_admin">設(shè)備管理員</string>
<string name="sample_device_admin">管理員</string>
<string name="sample_device_admin_description">開啟設(shè)備管理員,不開啟扣2000塊</string>

刪除掉配置文件中系統(tǒng)自帶的activity節(jié)點(diǎn)信息。修改復(fù)制過來的activity標(biāo)簽name為我們工程的活動名稱。

此時(shí)還是報(bào)錯,因?yàn)檫€有一個android:resource="@xml/device_admin_sample" 沒有配置
新建xml的文件夾,建一個device_admin_sample的文件,里面需要配置一些內(nèi)容。把官方文檔中的內(nèi)容全部寫入即可。
內(nèi)容如下:

解決了報(bào)錯問題。

2)、按照文檔要求,新建一個class DeviceAdminSample extends DeviceAdminReceiver。這是一個廣播接收者,里面不需要寫任何內(nèi)容,記得把配置文件中活動和接收者名稱修改為我們自己的。

android:name="com.itydl.lockscreen.DeviceAdminSample"
android:name="com.itydl.lockscreen.MainActivity"

3)、在活動中點(diǎn)擊事件里面添加如下兩行代碼:

  DevicePolicyManager dmp = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE);
  dmp.lockNow();//一鍵鎖屏

此時(shí)其實(shí)已經(jīng)開發(fā)完畢了,運(yùn)行后會報(bào)錯,發(fā)現(xiàn)時(shí)沒有“”擁有者“權(quán)限類似的錯誤信息。因?yàn)檫@僅僅對于程序員有效,進(jìn)入設(shè)備管理器激活這個應(yīng)用,再打開就可以使用了;對于用戶,不知道在哪激活,根本得不得體驗(yàn),所以還需要設(shè)置一鍵鎖屏的時(shí)候,啟動程序,先進(jìn)入開啟設(shè)備管理器活動的邏輯,讓用戶手動激活。
具體的代碼如下:
清單文件:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
 package="com.itydl.lockscreen" 
 android:versionCode="1" 
 android:versionName="1.0" > 
 
 <uses-sdk 
  android:minSdkVersion="8" 
  android:targetSdkVersion="17" /> 
 
 <application 
  android:allowBackup="true" 
  android:icon="@drawable/ic_launcher" 
  android:label="@string/app_name" 
  android:theme="@style/AppTheme" > 
   
  <activity 
   android:name="com.itydl.lockscreen.MainActivity" 
   android:label="一鍵鎖屏" > 
   <intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
 
    <category android:name="android.intent.category.LAUNCHER" /> 
   </intent-filter> 
  </activity> 
 
 
  <receiver 
   android:name="com.itydl.lockscreen.DeviceAdminSample" 
   android:description="@string/sample_device_admin_description" 
   android:label="@string/sample_device_admin" 
   android:permission="android.permission.BIND_DEVICE_ADMIN" > 
   <meta-data 
    android:name="android.app.device_admin" 
    android:resource="@xml/device_admin_sample" /> 
 
   <intent-filter> 
    <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" /> 
   </intent-filter> 
  </receiver> 
 
 </application> 
 
</manifest> 

package com.itydl.lockscreen; 
 
import android.os.Bundle; 
import android.app.Activity; 
import android.app.admin.DevicePolicyManager; 
import android.content.ComponentName; 
import android.content.Intent; 
import android.view.Menu; 
import android.view.View; 
 
public class MainActivity extends Activity { 
 
 private DevicePolicyManager dmp; 
 
 @Override 
 protected void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.activity_main); 
     //獲取設(shè)備管理員對象 
    dmp = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE); 
 } 
 
 /** 
  * 一鍵鎖屏 
  * 
  * @param v 
  */ 
 public void lockScreen(View v) { 
  // 如果沒有激活設(shè)備管理員,提醒用戶做事 
  ComponentName who = new ComponentName(this, DeviceAdminSample.class); 
  if (dmp.isAdminActive(who)) {// true表示已經(jīng)激活,測試管理員是否已經(jīng)激活。這里的who其實(shí)就是我們自定義的空的廣播接收者 
   dmp.lockNow();// 一鍵鎖屏 
 
  } else { 
       ////幫助用戶打開激活設(shè)備管理器的界面,讓用戶手動激活 
       /**根據(jù)官方文檔,寫出啟動設(shè)備管理器的活動 
    * // Launch the activity to have the user enable our admin. Intent 
    * intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); 
    * intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, 
    * mDeviceAdminSample); 
    * intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, 
    * mActivity.getString(R.string.add_admin_extra_app_text)); 
    * startActivityForResult(intent, REQUEST_CODE_ENABLE_ADMIN); 
    */ 
    
    Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); 
   intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, 
      who); 
    intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, 
      "設(shè)備管理器。。。"); 
    startActivityForResult(intent, 1); 
  } 
 } 
 
} 

此時(shí)記得去設(shè)備管理器取消激活。

一鍵運(yùn)行之后如下:

點(diǎn)擊一鍵鎖屏后,自動跳轉(zhuǎn)到設(shè)備管理器頁面,按下Activiate。應(yīng)用就生效了。

這個時(shí)候應(yīng)用算是開發(fā)完畢了,的確能實(shí)現(xiàn)鎖屏功能,但是還有很多問題需要解決。
你會發(fā)現(xiàn)此時(shí)的而應(yīng)用和市場上評論一樣,沒法卸載?。?!

這樣用戶體驗(yàn)也很差,而且必須點(diǎn)開用用才能鎖屏,那就沒必要浪費(fèi)時(shí)間點(diǎn)開一個應(yīng)用去鎖屏了。

對于上面幾個問題,在后邊的博文中繼續(xù)更新解決,點(diǎn)擊查看http://www.fzitv.net/article/96996.htm。

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

相關(guān)文章

最新評論

静乐县| 临湘市| 黄山市| 英吉沙县| 锦州市| 蕲春县| 凌源市| 固阳县| 石景山区| 舒兰市| 九江市| 石家庄市| 舟曲县| 天全县| 界首市| 金沙县| 绍兴县| 都江堰市| 邹平县| 康马县| 北碚区| 若羌县| 兴城市| 万载县| 林甸县| 江川县| 沙河市| 行唐县| 虞城县| 安阳县| 自贡市| 离岛区| 三河市| 南木林县| 浙江省| 阳信县| 连云港市| 体育| 盈江县| 大理市| 鄂尔多斯市|