編輯:關於android開發
設備管理員 Device Admin
獲取DevicePolicyManager對象,通過getSystemService(DEVICE_POLICY_MANAGER),設備策略管理器
調用DevicePolicyManager對象的lockNow()方法,鎖定,此時會報 安全異常
新建一個類MyAdmin繼承系統的DeviceAdminReceiver,這個是廣播接收者
清單文件進行注冊
添加<receiver>節點,設置名稱
設置權限 android:permission=”android.permission.BIND_DEVICE_ADMIN”
添加<meta-data>元數據節點,設置名稱 android:name=”android.app.device_admin”
設置資源 android:resource=”@xml/device_admin_sample”
在res目錄下新建xml的文件夾,新建一個device_admin_sample.xml文件
添加<intent-filter>節點,添加動作,android.app.action.DEVICE_ADMIN_ENABLED
此時還會報錯
打開系統設置,找到設備管理器,勾選設備管理員權限,激活設備
開啟管理員權限
獲取Intent對象,new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN)
調用Intent對象putExtra(),傳遞數據,要激活的組件,
參數:DevicePolicyManager.EXTRA_DEVICE_ADMIN,ComponentName組件名對象
獲取ComponentName對象,new出來,參數:上下文,Myadmin.class
調用Intent對象putExtra(),傳遞解說數據,勸說用戶開啟,參數:
DevicePolicyManager.EXTRA_ADD_EXPLANATION,文本
調用startActivity()
調用DevicePolicyManager對象的isAdminActive()方法,可以判斷是否有管理員權限,參數:ComponentName對象
調用DevicePolicyManager對象的resetPassword()方法,重置密碼,參數:password,0,把password設置為””可以取消密碼
調用DevicePolicyManager對象的wipeData()方法,清除數據,參數:清除sd卡DevicePlocyManager.WIPE_EXTERANL_STORGE
如果是0,就是恢復出廠設置
卸載軟件
這個裝上就卸載不掉了
調用DevicePolicyManager對象的removeActiveAdmin()方法,清除管理員權限,參數:ComponentName組件名對象,獲取ComponentName對象,new出來,參數:上下文,Myadmin.class
獲取Intent對象
調用Intent對象的setAction()方法,設置動作,參數:android.intent.action.VIEW
調用Intent對象的addCategory()添加類型,參數:android.intent.category.DEFAULT
調用Intent對象的setData(),設置數據,
參數:Uri對象,獲取Uri對象Uri.parse(“package:”+getPackageName())
調用startActivity()
device_admin_sample.xml
<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>
package com.tsh.mylockscreen; 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; import android.widget.Toast; public class MainActivity extends Activity { private DevicePolicyManager dpm; ComponentName who; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); dpm = (DevicePolicyManager) getSystemService(DEVICE_POLICY_SERVICE); who=new ComponentName(this, MyAdmin.class); } // 一鍵鎖屏 public void lockScreen(View v) { if (dpm.isAdminActive(who)) { dpm.lockNow(); dpm.resetPassword("123", 0); } else { Intent intent =new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, who); intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,"快開啟吧"); startActivity(intent); Toast.makeText(this, "沒有設備管理權限", 1).show(); } } //一鍵卸載 public void uninstall(View v) { dpm.removeActiveAdmin(who); Intent intent=new Intent(); intent.setAction(Intent.ACTION_DELETE); intent.addCategory("android.intent.category.DEFAULT"); intent.setData(Uri.parse("package:"+getPackageName())); startActivity(intent); } }
UI篇(初識君面),ui初識君面 我們的APP要想吸引用戶,就要把UI(臉蛋)搞漂亮一點。畢竟好的
Android5.x Notification應用解析 Notification可以讓我們在獲得消息的時候,在狀態欄,鎖屏界面來顯示相應的信息,很難想象如果沒有Not
Android API Guides---App Widgets 應用小工具 應用Widget是可以在其他應用程序(如主屏幕)嵌入並接受定期更新的微型應用程序的意見。
Android開發學習—— 創建項目時,不是繼承activity,而是繼承ActionBarActivity,androidactivity繼承 對於我們新建androi
Android種使用Notification實現通知管理以及自定義通知欄