Android APP 獲得權限


前言

所有APP都需要向手機終端請求各種各樣的權限,但是 Andorid Studio 項目默認不開啟這些權限支持。

本文記錄 Andorid APP 以獲得網絡請求權限為例的靜態/動態獲取權限的方法。

靜態授權

在 AndroidManifest.xml 文件中添加網絡請求權限聲明。

<uses-permission android:name="android.permission.INTERNET"/>

即可為 APP 添加靜態網絡請求權限。

動態授權

通過編寫 Java 代碼實現,示例:

//檢查是否獲得權限
if (ContextCompat.checkSelfPermission(ImageViewShowActivity.this, Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED) {
	Toast.makeText(ImageViewShowActivity.this, "未授權!", Toast.LENGTH_SHORT).show();
	//沒有獲得授權,申請授權
	if (ActivityCompat.shouldShowRequestPermissionRationale(ImageViewShowActivity.this, Manifest.permission.INTERNET)) {
		//彈窗解釋為何需要該權限,再次請求權限
		Toast.makeText(ImageViewShowActivity.this, "請授權!", Toast.LENGTH_SHORT).show();
		//跳轉到應用設置界面
		Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
		Uri uri = Uri.fromParts("package", getPackageName(), null);
		intent.setData(uri);
		startActivity(intent);
	} else {
		//不需要解釋為何需要授權直接請求授權
		Toast.makeText(ImageViewShowActivity.this, "請聯系開發人員授權!", Toast.LENGTH_SHORT).show();
		ActivityCompat.requestPermissions(ImageViewShowActivity.this, new String[]{Manifest.permission.INTERNET}, 1);
	}
} else {
	//獲得授權
	Toast.makeText(ImageViewShowActivity.this, "已授權!", Toast.LENGTH_SHORT).show();
}

測試

以下仍以網絡請求權限為例。

未靜態授權,僅動態授權


僅靜態授權,未動態授權

靜態授權,並動態授權


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM