編輯:關於Android編程
2015年8月18日早間消息,谷歌終於在M開頭的眾多甜品中為AndroidM確定了Marshmallow(棉花糖)這個正式名稱,版本號也被確定為Android 6.0。
Android6.0相對於前面的版本更新的內容,只有權限管理是我們開發者需要去注意的。
之前的安卓應用都會索取一大堆的權限,也不知道它想干什麼。現在用戶權限管理機制已經大大改善了。現在的權限設置類似iPhone平台一樣,只有在應用需要使用該功能的時候才會啟用,而不是在首次安裝應用的時候獲得用戶授權。
版本對比:
5.0-,只需要在manifest.xml中注冊聲明
5.0+,用戶可以在安裝的時候關閉某些權限
6.0+,對於一些用戶隱私權限總是會第一次提示用戶是否授予權限(和iphone類似)
作為開發者,最重要的是要知道這一改變會如何影響我們的項目。
Android6.0將權限進行了分類,分為普通權限和危險權限
普通權限:不涉及用戶隱私,不需要用戶進行授權,比如訪問網絡等;
危險權限:涉及用戶隱私,需要用戶進行授權,比如讀取SD卡等;
可以通過adb命令去進行查看:
adb shell pm list permissions -d –g
所以在我們的代碼中我們需要去對於6.0+的設備去主動申請危險權限。
操作步驟:
1、在AndroidManifest中添加需要的權限(不可省)
2、檢查權限
3、申請授權
4、處理申請回調
權限的申請一般都是定義一個抽象類,當activity被創建的時候才去申請危險權限。
BaseActivity:
public class BaseActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } /* * 為子類提供權限檢查方法 * */ public boolean hasPermission(String... permissions) { for (String permission : permissions) { if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) { return false; } } return true; } /* * 為子類提供一個權限請求方法 * */ public void requestPermission(int code,String... permissions){ ActivityCompat.requestPermissions(this,permissions,code); } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { switch (requestCode){ case Constants.WRITE_EXTERNAL_CODE: doSDCardPermission(); break; case Constants.CALL_PHONE: doCallPhone(); break; } } //默認的寫SD卡權限處理,讓子類去具體實現 public void doSDCardPermission() { } //默認的打電話權限處理,讓子類去具體實現 public void doCallPhone(){ } } public class Constants { //權限常量相關 public static final int WRITE_EXTERNAL_CODE = 0x01; public static final int CALL_PHONE = 0x02; }
除此之外還有一種方法去實現,是通過第三方開源庫PermissionGen去實現,內部是通過反射去實現的。
LED indicator 簡介所謂的LED indicator就是手機上面充電發短信的燈,有時會亮綠燈,有時會亮紅燈,有時一起亮(橙燈),主要用於提醒用戶電量、短信、電
項目簡介:本項目是一個查詢火車車次信息和飛機航班信息的應用源碼,可以查詢一個城市到另外一個城市的車次和班次的信息,並且可以加入收藏以供日後使用,火車車次信息和飛機航班信息
studio中碰到的jni問題最近在做supervideo,解析youku視頻地址,是加過密處理,須要用對應的key去解析,獲取對應數據,在引用jni時,發現接二連三出問
今天的效果在支付寶、淘寶、京東等電商App中很常見。比如支付寶輸入密碼彈窗、商城下單時選擇商品屬性時,從下面浮動上來一個PopupWindow,那麼今天就帶大家用Beha