android 7.0相機遇到的一些問題記錄,在網上看了好久,主要是之前沒有怎麼解除過,所以看起來挺費勁,沒有乙個系統的介紹,所以看起來一臉懵逼,然後在書上查了一下,很簡單的搞定問題,沒有太多的原理詳解,以解決問題為核心,
現分享記錄,親測可用.//啟動相機
intenti
=newintent
("android.media.action.image_capture");
i.putextra
(mediastore.
extra_output
,imageuri1);
i.addflags
(intent.
flag_grant_read_uri_permission);
i.addflags
(intent.
flag_grant_write_uri_permission);
startactivityforresult(i
,flag);
首先建立乙個file,並指定**的儲存路徑,getexternalcachedir()
獲取手機sd卡的應用相關聯目錄,為什麼要使
用應用相關聯目錄呢,因為在android 6.0 後,sd卡被定義在危險許可權中,訪問相機需要申請執行時許可權,獲取應用
相關聯目錄就可以跳過這一步,fileprovider是android的乙個特殊的內容提供器,它使用了和內容提供器類似的機制
來對資料進行保護,提高了安全性.
這個大家都明白的,但是在指定uri的時候要進行判斷是否是7.0相機,小於7.0版本相機的處理方式並沒有什麼變化;注意7.0相機的路徑,需要呼叫 fileprovider.geturiforfile();第乙個
引數是上下文,第二個引數是乙個任意的字串 + .fileprovider
(注意,這個在後面有用到),第三個引數是file物件,最後得到乙個路徑
,就是7.0相機**儲存的最終路徑,意圖呼叫相機就不贅述了.因為是startactivityforresult隱式意圖呼叫相機,
**拍攝完成會儲存在output.jsp,再呼叫(7.0相機這樣呼叫拿到相片,見操作(2))(2): bitmapfactory.decodestream(getcontentresolver()
.openinputstream(
imageuri1
));得到這張,
(3): 然後需要在清單檔案中進行註冊內容提供器,
<providerandroid:name="android.support.v4.content.fileprovider"
android:authorities="net.xinyongfu.fileprovider"
android:exported="false"
android:granturipermissions="true"
>
<
meta-dataandroid:name="android.support.file_provider_paths"
android:resource="@xml/file_paths"
/>
provider>
provider內的相關屬性,authrities:屬性是你可以自定義的任意字串 .fileprovider ,但是必須和剛才fileprovider.geturiforfile();裡面的第二個引數是完全一致的;name:是固定的,exported必須是false,
granturipermissions 必須是true,
meta-data 裡面的屬性name 屬性是固定的,resource裡面引用了乙個xml資源,現在這個資源是不存在的,下面開始
建立,右擊res目錄->new->directory,建立乙個xml目錄,右擊xml建立乙個file,下面是xml裡面的**示例
(4):<?xml version="1.0" encoding="utf-8"name可以隨便寫,path= "",代表將整個sd卡目錄進行共享,?>
<
pathsxmlns:android=""
>
<
external-pathname="my_images" path=""
/>
paths>
但是在android4.0系統之前,還是要在清單檔案中申明訪問sd卡的許可權
<uses-permissionandroid:name="android.permission.write_external_storage"
/>
這樣**就寫完了,注意:四步操作,缺一不可,相關api方法呼叫都是實現這個功能的基礎.
vmware 虛擬機器遇到的一些問題
1.vmware異常關閉後導致虛擬機器無法開啟問題解決 如果是window物理機已經關機過的情況下 把虛擬機器目錄下的.lck結尾的刪掉即可。關機過,vmware原來的軟體程序已經沒有了。lck 檔案是vmware軟體的一種磁碟鎖檔案,由於虛擬磁碟 vmdk 本身有乙個磁碟保護機制,為了防止多台虛擬...
關於Android的一些設計
關於android的一些設計 2012年01月13日 讓我們一起面對吧。android多型號的裝置以及形狀的諸多因素,讓其設計感覺像是一場艱苦的戰鬥。其神秘的文件使得設計和生產在一開始就顯得很難。在網上找有關android設計的網路資源,你會發現很少有幫助的東西。如果這一切讓你感到沮喪 而且如果這是...
關於Android的一些設計
關於android的一些設計 2012年01月13日 讓我們一起面對吧。android多型號的裝置以及形狀的諸多因素,讓其設計感覺像是一場艱苦的戰鬥。其神秘的文件使得設計和生產在一開始就顯得很難。在網上找有關android設計的網路資源,你會發現很少有幫助的東西。如果這一切讓你感到沮喪 而且如果這是...