我不是真正的Android开发专家,所以请耐心等待。
我要将应用从Android 19更改为23. Android API 23改变了权限的工作方式。那么API 23中发生的事情是,它不是在App安装中询问权限,而是要求运行时的权限。
我的问题是,我是否需要更改Andoid清单中我的权限设置方式?因为我试图在build.gradle中将API更改为23,所有内容似乎仍然无效。
答案 0 :(得分:4)
我的问题是,我是否需要根据Andoid清单中的权限设置进行更改?
你无需做任何事。如果您只想在API Level 23+设备上使用权限,则可以使用<uses-permission-sdk23>
代替<uses-permission>
,但这完全是可选的。
因为我试图在build.gradle中将API更改为23,所有内容似乎仍然无效。
我不知道“将API改为23”意味着什么。如果您的targetSdkVersion
为23或更高,并且您在API级别23或更高级别(Android 6.0+)上运行,并且您正常安装应用程序(即,不是通过从开发工具运行它),则用户将不会在安装时提示更长时间的权限。但是,对于您请求protectionLevel
dangerous
WRITE_EXTERNAL_STORAGE
的任何权限(例如body {
margin-top: 125px;
}
@-moz-keyframes spinningH {
from {
-moz-transform: rotateX(0deg) rotateY(0deg);
}
to{
-moz-transform: rotateX(360deg) rotateY(360deg);
}
}
@-webkit-keyframes spinningH {
from {
-webkit-transform: rotateX(0deg) rotateY(0deg);
}
to{
-webkit-transform: rotateX(360deg) rotateY(360deg);
}
}
@-o-keyframes spinningH {
from {
-o-transform: rotateX(0deg) rotateY(0deg);
}
to{
-o-transform: rotateX(360deg) rotateY(360deg);
}
}
@-ms-keyframes spinningH {
from {
-ms-transform: rotateX(0deg) rotateY(0deg);
}
to{
-ms-transform: rotateX(360deg) rotateY(360deg);
}
}
@keyframes spinningH {
from {
transform: rotateX(0deg) rotateY(0deg);
}
to{
transform: rotateX(360deg) rotateY(360deg);
}
}
#container {
-webkit-perspective : 1000px;
-moz-perspective : 1000px;
-o-perspective : 1000px;
-ms-perspective : 1000px;
perspective : 1000px;
-webkit-perspective-origin : 50% 50%;
-moz-perspective-origin : 50% 50%;
-moz-transform-origin : 50% 50%;
-o-perspective-origin : 50% 50%;
-ms-perspective-origin : 50% 50%;
perspective-origin : 50% 50%;
}
.animate {
-webkit-animation : spinningH 6s infinite linear;
-moz-animation : spinningH 6s infinite linear;
-o-animation : spinningH 6s infinite linear;
-ms-animation : spinningH 6s infinite linear;
animation : spinningH 6s infinite linear;
}
#cube {
position: relative;
margin: 0 auto;
height: 400px;
width: 400px;
-webkit-transition : -webkit-transform 2s linear;
-moz-transition : -moz-transform 2s linear;
-o-transition : -o-transform 2s linear;
-ms-transition : -ms-transform 2s linear;
transition : transform 2s linear;
-webkit-transform-style : preserve-3d;
-moz-transform-style : preserve-3d;
-o-transform-style : preserve-3d;
-ms-transform-style : preserve-3d;
transform-style : preserve-3d;
}
#cube>div {
position: absolute;
height: 360px;
width: 360px;
padding: 20px;
opacity: 0.9;
background-position:center center;
}
#cube div:nth-child(1) {
-webkit-transform : translateZ(200px);
-moz-transform : translateZ(200px);
-o-transform : translateZ(200px);
-ms-transform : translateZ(200px);
transform : translateZ(200px);
background-color : #2E272F;
background-repeat : no-repeat;
}
#cube div:nth-child(2) {
-webkit-transform : rotateY(90deg) translateZ(200px);
-moz-transform : rotateY(90deg) translateZ(200px);
-o-transform : rotateY(90deg) translateZ(200px);
-ms-transform : rotateY(90deg) translateZ(200px);
transform : rotateY(90deg) translateZ(200px);
background-color : #2D3A4D;
background-repeat : no-repeat;
}
#cube div:nth-child(3) {
-webkit-transform : rotateY(180deg) translateZ(200px);
-moz-transform : rotateY(180deg) translateZ(200px);
-o-transform : rotateY(180deg) translateZ(200px);
-ms-transform : rotateY(180deg) translateZ(200px);
transform : rotateY(180deg) translateZ(200px);
background-color : #2D1C12;
background-repeat : no-repeat;
}
#cube div:nth-child(4) {
-webkit-transform : rotateY(-90deg) translateZ(200px);
-moz-transform : rotateY(-90deg) translateZ(200px);
-o-transform : rotateY(-90deg) translateZ(200px);
-ms-transform : rotateY(-90deg) translateZ(200px);
transform : rotateY(-90deg) translateZ(200px);
background-color : #693C1F;
background-repeat : no-repeat;
}
#cube div:nth-child(5) {
-webkit-transform : rotateX(-90deg) translateZ(200px) rotate(180deg);
-moz-transform : rotateX(-90deg) translateZ(200px) rotate(180deg);
-o-transform : rotateX(-90deg) translateZ(200px) rotate(180deg);
-ms-transform : rotateX(-90deg) translateZ(200px) rotate(180deg);
transform : rotateX(-90deg) translateZ(200px) rotate(180deg);
background-color : #955122;
background-repeat :no-repeat;
}
#cube div:nth-child(6) {
-webkit-transform : rotateX(90deg) translateZ(200px);
-moz-transform : rotateX(90deg) translateZ(200px);
-o-transform : rotateX(90deg) translateZ(200px);
-ms-transform : rotateX(90deg) translateZ(200px);
transform : rotateX(90deg) translateZ(200px);
background-color : #E34C26;
background-repeat :no-repeat;
text-align:center;
}
),在运行时请求它们并且用户授予它们之前,您将不会保留这些权限。< / p>
答案 1 :(得分:-1)
没有。您在代码中设置的targetSdkVersion
,minSdkVersion
等对权限的处理方式没有影响,而是取决于目标应用运行的设备。 Android更改了Android 6.0(API 24设备)中要求权限的方式。您必须在运行时询问权限。 Official Documentation for asking runtime permissions from user.