两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于設(shè)備管理器實(shí)現(xiàn)安卓智能設(shè)備攝像頭的管控方法與流程

文檔序號:11216755閱讀:1065來源:國知局
一種基于設(shè)備管理器實(shí)現(xiàn)安卓智能設(shè)備攝像頭的管控方法與流程

本發(fā)明屬于安卓設(shè)備管控技術(shù)領(lǐng)域,尤其涉及一種攝像頭管控方法。



背景技術(shù):

安卓(android)系統(tǒng)作為自由及開放源代碼的操作系統(tǒng),近幾年大量使用在智能設(shè)備,如智能手機(jī)和平板電腦上,用智能手機(jī)進(jìn)行拍照、攝像更是成為了人們生活的一部分。但眾多軍事、高科技、宗教、文化等場所,出于保密、專利等需求,音頻資料必須受到嚴(yán)格管控,“嚴(yán)禁拍照”是最基本的規(guī)則之一。通過禁止攜帶智能手機(jī)可以達(dá)到一定程度的管控,但會(huì)浪費(fèi)大量的人力物力,費(fèi)時(shí)費(fèi)力,而且不能做到一刀切的效果。如何妥善處理智能手機(jī)與攝像管控的矛盾,是多家部門、單位和企業(yè)等的迫切需求。

現(xiàn)有技術(shù)中,目前主流的智能手機(jī)攝像頭管控方法,僅對系統(tǒng)自帶攝像app有效,在沒有安裝第三方帶攝像功能的情況下效果尚可。但隨著各種app的大量豐富,不僅各種專門的攝像app層出不窮,而且各種帶攝像功能的app更是數(shù)不勝數(shù)。更有多種原本不帶攝像功能app,在升級更新后又可能具有了該功能,讓傳統(tǒng)的方法不再有效。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的在于;提供一種基于設(shè)備管理器實(shí)現(xiàn)安卓智能設(shè)備攝像頭的管控方法,以解決隨著各種帶攝像app的大量豐富,傳統(tǒng)方法已不能有效管控手機(jī)攝像頭的技術(shù)問題,本發(fā)明利用設(shè)備管理器對攝像頭進(jìn)行管控,無論是系統(tǒng)自帶app,還是任何第三方app,都能進(jìn)行全方位覆蓋,令其拍照、攝像功能完全失效,但完全不影響安卓智能手機(jī)其他功能,滿足多種場合的不同需求。

本發(fā)明采用的技術(shù)方案如下:

一種基于設(shè)備管理器實(shí)現(xiàn)安卓智能設(shè)備攝像頭的管控方法,包括以下步驟:

步驟一:激活設(shè)備管理器,并獲取設(shè)備管理器實(shí)例,以獲得攝像頭的控制權(quán)限;

步驟二:獲取設(shè)備策略管理器實(shí)例;

步驟三:檢測設(shè)備管理器對攝像頭的控制權(quán)限是否激活,否則,利用startactivity()彈出設(shè)備管理器權(quán)限激活窗口以激活設(shè)備管理器對攝像頭的控制權(quán)限;

步驟四:設(shè)備管理器對攝像頭的控制權(quán)限激活后,利用設(shè)備策略管理器實(shí)例調(diào)用攝像頭管控接口,以打開或者關(guān)閉攝像頭。

進(jìn)一步的,步驟一中,獲得攝像頭的控制權(quán)限的詳細(xì)過程包括:

a.注冊一個(gè)admin,得到一個(gè)admin管理員權(quán)限;

b.通過admin管理員權(quán)限調(diào)用devicepolicymanager方法,進(jìn)一步獲取管控?cái)z像頭的權(quán)限。

進(jìn)一步的,步驟二中,獲取設(shè)備策略管理器實(shí)例的詳細(xì)過程包括:

a.在manifest.xml中注冊一個(gè)廣播接收者;

b.通過廣播來獲取激活設(shè)備管理器列表;

c.在獲得的設(shè)備管理器列表中找到對應(yīng)的攝像頭控制選項(xiàng),從而獲得設(shè)備策略管理實(shí)例。

進(jìn)一步的,步驟三中,激活設(shè)備管理器對攝像頭的控制權(quán)限的詳細(xì)過程包括:

a.創(chuàng)建一個(gè)廣播接收者;

b.創(chuàng)建布局文件,對廣播接收者進(jìn)行定義;

c.定義broadcastreceiver-devicemanangerbc,使之繼承deviceadminreceiver來給廣播接收者獲取權(quán)限;

d.在androidmanifest.xml文件中注冊broadcastreceiver來激活設(shè)備管理器權(quán)限。

進(jìn)一步的,步驟四中,調(diào)用攝像頭管控接口打開或者關(guān)閉攝像頭的詳細(xì)過程包括:

a.在res/xml/device_admin.xml中聲明攝像頭管理策略,并在androidmanifest引用xml策略聲明;

b.創(chuàng)建一個(gè)設(shè)備管理的廣播接收端,以接收與聲明的攝像頭管理策略有關(guān)的事件通知,有選擇地重寫回調(diào)函數(shù);

c.根據(jù)請求的攝像頭管理策略來配置設(shè)備策略管理器,以調(diào)用攝像頭管控接口打開或者關(guān)閉攝像頭。

進(jìn)一步的,步驟四中,當(dāng)設(shè)備管理器對攝像頭的控制權(quán)限被用戶設(shè)為禁用時(shí),已配置好的攝像頭限制策略就會(huì)從共享偏好設(shè)置中擦除。

進(jìn)一步的,檢測設(shè)備管理器對攝像頭的控制權(quán)限是否激活的實(shí)現(xiàn)步驟包括:

a.在androidmanifest.xml中注冊一個(gè)廣播類,用于監(jiān)聽權(quán)限的變化;

b.創(chuàng)建管理權(quán)限的清單;

c.創(chuàng)建廣播類deviceadminreceiver繼承deviceadminreceiver,并且實(shí)現(xiàn)相應(yīng)的方法;

d.激活相關(guān)管理權(quán)限的操作。

綜上所述,由于采用了上述技術(shù)方案,本發(fā)明的有益效果是;

本發(fā)明方法利用安卓系統(tǒng)設(shè)備管理器對攝像頭進(jìn)行管控,管控級別高,無論系統(tǒng)自帶app還是第三方app均在管控范圍內(nèi),能夠令其拍照、攝像功能完全失效,無法避開此方法而使用攝像頭;并且該方法對安卓智能手機(jī)其他功能無影響,不會(huì)為用戶帶來其他的不便,滿足多種場合的不同需求。

附圖說明

圖1是本發(fā)明的方法步驟示意圖。

具體實(shí)施方式

本說明書中公開的所有特征,除了互相排斥的特征和/或步驟以外,均可以以任何方式組合。

下面結(jié)合圖1對本發(fā)明作詳細(xì)說明。

步驟一:激活設(shè)備管理器,并獲取設(shè)備管理器實(shí)例,以獲得攝像頭的控制權(quán)限;

(1)獲取設(shè)備管理器的實(shí)例的方法為;android在實(shí)現(xiàn)設(shè)備管理器時(shí),首先需要在manifest.xml中注冊一個(gè)廣播接收者。

(2)通過步驟(1)中的方法獲取已經(jīng)激活的設(shè)備管理器列表mactiveadmins,并返回mactiveadminssetting的設(shè)備管理器列表。獲取所有注冊了deviceadminreceiver.action_device_admin_enabled即android.app.device_admin_enabledaction的廣播接收者列表avail。如果應(yīng)用注冊了包含該action的廣播接收者并且激活了設(shè)備管理器,就會(huì)在setting的設(shè)備管理器列表中顯示。

(3)注冊android.app.action.device_admin_enabledaction的應(yīng)用激活為設(shè)備管理器。反編譯。接通過devicepolicymanager獲得的已經(jīng)激活的設(shè)備管理器列表a和通過遍歷注冊了android.app.action.device_admin_enabledaction的列表b進(jìn)行對比,如果發(fā)現(xiàn)列表a中的設(shè)備管理器沒有在列表b中出現(xiàn),就調(diào)用如下代碼彈出取消激活的activity,讓用戶手動(dòng)取消。

找到利用這個(gè)漏洞的設(shè)備管理器后直接調(diào)用devicepolicymanager的removeactiveadmin方法取消激活,該方法需要system以上權(quán)限才能執(zhí)行。

deviceadminsettings中獲取異常,用正常的設(shè)備管理器程序安裝,正常激活,然后刪除該程序的meta-data配置,生成apk,以更新安裝的形式安裝到android設(shè)備上。設(shè)備管理器注冊了android.app.action.device_admin_enabled,所以使用上述的設(shè)備管理漏洞補(bǔ)丁。

從上面對于設(shè)備管理器漏洞補(bǔ)丁apk的分析可以得出兩種取消激活的方法分析:

一、devicepolicymanager獲得的已經(jīng)激活的設(shè)備管理器列表,啟動(dòng)取消激活的activity。測試結(jié)果是行不通的,因?yàn)閐eviceadminadd也需要解析meta-data中的信息。

二、獲取到激活的設(shè)備管理器列表后,可以直接調(diào)用devicepolicymanager的removeactiveadmin方法取消激活,測試結(jié)果成功,但是需要system以上的權(quán)限。使用正常的apk激活設(shè)備管理器,然后使用異常的apk避免設(shè)備管理器被取消。

步驟二:利用getsystemservice()獲取設(shè)備策略管理器實(shí)例;

首先android平臺(tái)通過設(shè)備管理api提供了系統(tǒng)級的設(shè)備管理能力。如何獲取一個(gè)設(shè)備管理器實(shí)例,其方法在于:

(1)定義并聲明策略

首先定義一種在功能層面提供支持的策略,這個(gè)聲明的策略對應(yīng)于devicepolicymanager中的一些相關(guān)設(shè)備的策略方法,例如定義最小密碼長度或最小大寫字母數(shù)量。如果一個(gè)程序嘗試調(diào)用在xml中沒有對應(yīng)策略的方法,這會(huì)將在運(yùn)行時(shí)導(dǎo)致一個(gè)securityexception異常。程序使用強(qiáng)制鎖作為設(shè)備管理員激活處理的一部分,聲明策略的列表將會(huì)在系統(tǒng)屏幕上顯示給用戶。

(2)創(chuàng)建一個(gè)設(shè)備管理的廣播接收者

創(chuàng)建一個(gè)設(shè)備管理的廣播接收者,它能接收到與聲明支持的策略有關(guān)的事件的通知。一個(gè)程序可以有選擇地重寫回調(diào)函數(shù)。

在同樣的程序中,deviceadmin,當(dāng)設(shè)備管理員(deviceadministrator)賬戶被用戶設(shè)置為禁用時(shí),配置好的策略就會(huì)從sharedpreference中擦除。應(yīng)該考慮實(shí)現(xiàn)與應(yīng)用情況有關(guān)的業(yè)務(wù)邏輯。例如,程序可能會(huì)采取一些行動(dòng)來減輕安全風(fēng)險(xiǎn),比如通過結(jié)合實(shí)現(xiàn)刪除設(shè)備上的敏感數(shù)據(jù),禁用遠(yuǎn)程同步,提醒管理員。

如果選擇"activate",程序就會(huì)成為設(shè)備管理員并且可以開始配置及強(qiáng)制執(zhí)行策略。

該程序也需要做好處理用戶放棄激活的重置狀態(tài)的準(zhǔn)備,比如點(diǎn)擊“取消”按鈕,返回鍵或者h(yuǎn)ome鍵。因此策略設(shè)置activity中的onresume()方法需要有業(yè)務(wù)邏輯來重新評估這種情況,并展現(xiàn)給用戶設(shè)備管理激活選項(xiàng)給用戶,如果有必要的話。

(3)實(shí)現(xiàn)設(shè)備策略控制器

在設(shè)備管理員被成功激活后,程序就會(huì)根據(jù)請求的策略來配置設(shè)備策略管理器。要記住新的策略在每次發(fā)布時(shí)都要在android中添加好。程序中做好平臺(tái)版本檢查,來檢測新的策略能否被老版本平臺(tái)很好的支持。

這樣程序就可以執(zhí)行策略了。通過設(shè)備策略管理器(devicepolicymanager)api可以判定目前的密碼是否適用于請求的策略。設(shè)備管理(deviceadministration)api不會(huì)自動(dòng)改正。

步驟三:檢測設(shè)備管理器對攝像頭的控制權(quán)限是否激活,否則,利用startactivity()彈出設(shè)備管理器權(quán)限激活窗口以激活設(shè)備管理器對攝像頭的控制權(quán)限;

檢測是否開啟設(shè)備管理器設(shè)備,其方法在于:

檢查設(shè)備管理器時(shí)候激活,需要運(yùn)用到三個(gè)類;

devicepolicymanager,需要配合deviceadminreceiver來使用。

deviceadminreceiver該類繼承broadcastreceiver。實(shí)現(xiàn)了一個(gè)onreceiver方法,該方法中根據(jù)不同的action,執(zhí)行相應(yīng)的操作。如果激活成功,那么action就是action_device_admin_enabled,據(jù)此調(diào)用onenabled方法。

deviceadmininfo實(shí)現(xiàn)步驟:

a.在androidmanifest.xml中注冊一個(gè)廣播類,用于監(jiān)聽權(quán)限的變化;

b.創(chuàng)建管理權(quán)限的清單;在res的文件夾下創(chuàng)建xml文件夾,再創(chuàng)建lockourscreen.xml;

c.創(chuàng)建廣播類deviceadminreceiver繼承deviceadminreceiver并且實(shí)現(xiàn)相應(yīng)的方法;

d.激活相關(guān)管理權(quán)限的操作;

上述利用設(shè)備管理器實(shí)例調(diào)用攝像頭管控接口打開或者關(guān)閉攝像頭,其方法在于,使用mediastore.action_image_capture啟動(dòng)安裝在手機(jī)上的攝像頭應(yīng)用程序

現(xiàn)在使用startactivityforresult()函數(shù)推出活動(dòng),并等待它的結(jié)果。它的語法下面給出,startactivityforresult(intent,0)這種方法已在活動(dòng)activity類被定義。

其結(jié)果可以通過覆蓋onactivityresult()方法獲得。

(1)使用eclipseide創(chuàng)建android應(yīng)用程序,并將其命名為camera。在創(chuàng)建這個(gè)項(xiàng)目,確保目標(biāo)sdk編譯在androidsdk中的最新版本或使用更高級別的api。

修改src/mainactivity.java文件中添加意圖啟動(dòng)活動(dòng)代碼,由result方法來接受輸出;

修改res/values/strings.xml定義所需的常量值;

運(yùn)行應(yīng)用程序并選擇運(yùn)行android設(shè)備,并在其上安裝的應(yīng)用和驗(yàn)證結(jié)果。

(2)直接使用應(yīng)用程序提供的android攝像頭api

使用照相機(jī)api給攝像機(jī)整合在應(yīng)用中;

首先,需要使用靜態(tài)方法通過apicalledcamera.open提供并初始化相機(jī)對象。它的語法如下:cameraobject=null;object=camera.open();

getcamerainfo(intcameraid,camera.camerainfocamerainfo)它返回一個(gè)特定攝像機(jī)信息;

getnumberofcameras()它返回限定的可用的設(shè)備上的照相機(jī)的整數(shù);

lock()它被用來鎖定相機(jī),所以沒有其他應(yīng)用程序可以訪問它;

release()它被用來釋放在鏡頭鎖定,所以其他應(yīng)用程序可以訪問它;

open(intcameraid)它是用來打開特定相機(jī)時(shí),支持多個(gè)攝像機(jī);

enableshuttersound(booleanenabled)它被用來使能/禁止圖像俘獲的默認(rèn)快門聲音;

需要做一個(gè)獨(dú)立的類和surfaceview擴(kuò)展它并實(shí)現(xiàn)surfaceholder接口。

已經(jīng)使用的兩種類具有以下目的:

camera它是用來控制攝像機(jī)和拍攝圖像或從相機(jī)拍攝的視頻;

surfaceview這個(gè)類是用來展示實(shí)時(shí)攝像頭預(yù)覽給用戶;

必須調(diào)用攝像機(jī)類的預(yù)覽方法來啟動(dòng)攝像機(jī)的預(yù)覽給用戶;

可以使用照相機(jī)api提供的其它功能中設(shè)置的攝像機(jī)的其它選項(xiàng);

startfacedetection()此功能啟動(dòng)人臉檢測相機(jī);

stopfacedetection()它是用來阻止其通過上述功能啟用的臉部檢測;

startsmoothzoom(intvalue)這需要一個(gè)整數(shù)值,并調(diào)整攝像機(jī)的焦距非常順暢的值;

stopsmoothzoom()它是用來阻止攝像機(jī)的變焦;

stoppreview()它是用來阻止相機(jī)的預(yù)覽給用戶;

takepicture(camera.shuttercallbackshutter,camera.picturecallbackraw,camera.picturecallbackjpeg)它被用來使能/禁止圖像拍攝的默認(rèn)快門聲音。

步驟四:設(shè)備管理器對攝像頭的控制權(quán)限激活后,利用設(shè)備策略管理器實(shí)例調(diào)用setmicrophonemute()打開或者關(guān)閉攝像頭。

(1)搭建最新的androidos實(shí)際的移動(dòng)設(shè)備,因?yàn)閿z像機(jī)不支持模擬器;

steps描述:

1、使用androidstudio創(chuàng)建android應(yīng)用程序,并將其命名為;camera。在創(chuàng)建這個(gè)項(xiàng)目,確保目標(biāo)sdk和編譯在androidsdk的最新版本或使用更高級別的api。

2、修改src/mainactivity.java文件引用添加攝像機(jī)的代碼,并獲得了xml的組件

3、創(chuàng)建一個(gè)新的文件showcamera.java使用surfaceview擴(kuò)展和實(shí)現(xiàn)surfaceholder接口。

4、修改所需的布局xml文件res/layout/activity_main.xml添加gui組件。在這里我們只添加frameview,一個(gè)按鈕和一個(gè)imageview。

5、修改res/values/strings.xml定義所需的常量值。

6、修改androidmanifest.xml如下圖所示,添加必要的權(quán)限攝像機(jī)。

7、運(yùn)行應(yīng)用程序并選擇運(yùn)行android的設(shè)備,并在其上安裝的應(yīng)用和驗(yàn)證結(jié)果。

本發(fā)明方法利用安卓系統(tǒng)設(shè)備管理器對攝像頭進(jìn)行管控,管控級別高,無論系統(tǒng)自帶app還是第三方app均在管控范圍內(nèi),能夠令其拍照、攝像功能完全失效,無法避開此方法而使用攝像頭;并且該方法對安卓智能手機(jī)其他功能無影響,不會(huì)為用戶帶來其他的不便,滿足多種場合的不同需求。

本發(fā)明中涉及的安卓智能設(shè)備包括手機(jī)、平板等設(shè)備。

通過以上實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明以軟件的方式來實(shí)現(xiàn)。雖然通過實(shí)施例描述了本發(fā)明,本領(lǐng)域的技術(shù)人員知道,本發(fā)明有很多變形和變化而不能脫離本發(fā)明的精神,一樣受本發(fā)明的權(quán)利要求保護(hù)。本發(fā)明未詳細(xì)闡述的部分屬于本領(lǐng)域公知技術(shù),本領(lǐng)域技術(shù)人員根據(jù)已有的描述已能夠在不付出創(chuàng)造性勞動(dòng)的前提下進(jìn)行實(shí)施,因此,不再贅述。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
昆山市| 静乐县| 名山县| 清苑县| 孝昌县| 故城县| 大新县| 河间市| 盘锦市| 南靖县| 汝南县| 班戈县| 闻喜县| 灵丘县| 收藏| 麻栗坡县| 天柱县| 东源县| 三亚市| 文安县| 武夷山市| 资溪县| 巫溪县| 边坝县| 新安县| 监利县| 错那县| 十堰市| 永宁县| 益阳市| 隆德县| 达拉特旗| 体育| 黎平县| 垫江县| 泗洪县| 淳安县| 太仓市| 井冈山市| 平罗县| 军事|