我按照这里描述的步骤:
https://developer.android.com/preview/testing/guide.html#doze-standby
情况:
Android Debug Bridge版本1.0.32
Nexus 9预览M
贝壳:
$ adb shell dumpsys battery unplug
Run Code Online (Sandbox Code Playgroud)
=>工作,设备拔掉
$ adb shell dumpsys deviceidle step
Run Code Online (Sandbox Code Playgroud)
=>输出:步进到:ACTIVE
$ adb shell dumpsys deviceidle -h
Run Code Online (Sandbox Code Playgroud)
=>不起作用=>输出:
Device idle controller (deviceidle) dump options:
[-h] [CMD]
-h: print this help text.
Commands:
step
disable
enable
whitelist
Run Code Online (Sandbox Code Playgroud)
我尝试过:
adb shell dumpsys deviceidle enable
Run Code Online (Sandbox Code Playgroud)
但它没有用.
所以我的问题,如上所述,如何在打盹模式下移动设备?我犯了什么错?
编辑 - 2016年6月:
新链接:https: //developer.android.com/training/monitoring-device-state/doze-standby.html
我使用预览M并测试我的应用程序,特别是"将文件保存到外部存储"部分.在下载/保存过程开始之前,我请求
Manifest.permission.WRITE_EXTERNAL_STORAGE
Run Code Online (Sandbox Code Playgroud)
开发者页面上描述的权限:https://developer.android.com/preview/features/runtime-permissions.html
对话框按预期发生:
"Allow <AppName> to access photos, media, and files on your device?" Deny / Allow
Run Code Online (Sandbox Code Playgroud)
如果我点击"拒绝"按钮,则调用活动的onRequestPermissionsResult方法.
如果我按下"允许"按钮,则首先重新创建活动,然后调用onRequestPermissionsResult方法.我认为这是获得许可的结果.
但第二种情况很棘手,因为我想触发一个开始下载的回调,但此时此对象为null:
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
getLogger().error("onRequestPermissionsResult ( " + requestCode + ", " + permissions + ", " + grantResults + " )");
switch (requestCode) {
//permission for saving files?
case PermissionCode.WRITE_EXTERNAL_STORAGE: {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//HERE IS THE NULL-OBJECT
if (controller != null) {
controller.triggerCallback();
}
}
break;
} …Run Code Online (Sandbox Code Playgroud) 这里是 Android Studio 中的代码。我还在 Android Studio 代码下方添加了 html 代码,使用 javascript 来记住 cookie 中的用户名和密码。它仅适用于某些 Android 设备。我不知道为什么。我想让它适用于所有 Android 设备。希望这将是一个简单的方法。请帮忙。我希望用户输入一次用户名/密码,下次访问时应填写该用户名/密码。
public class MainActivity extends AppCompatActivity {
private Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar = (Toolbar) findViewById(R.id.app_bar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle("Go To Our Facebook Page");
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.setWebViewClient(new WebViewClient());
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.loadUrl("http://www.hksalonjob.comslogin.php");
}
Run Code Online (Sandbox Code Playgroud)
这里有html代码,使用javascript来记住用户名和密码。
<!DOCTYPE HTML>
<html>
<head>
<title>Salon Job HK</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<!--[if …Run Code Online (Sandbox Code Playgroud) 我想在运行时检查Android SDK版本。我这样尝试:
fun Context.getDrawableById(resId : Int) : Drawable {
when (Build.VERSION.SDK_INT) {
in Int.MIN_VALUE..20 -> return resources.getDrawable(resId)
else -> return getDrawable(resId)
}
}
Run Code Online (Sandbox Code Playgroud)
我收到一个编译器警告“调用要求API级别21(当前最小值为19)”。所以我更改了代码:
fun Context.getDrawableById(resId : Int) : Drawable {
if (Build.VERSION.SDK_INT < 21)
return resources.getDrawable(resId)
else
return getDrawable(resId)
}
Run Code Online (Sandbox Code Playgroud)
没有编译器警告。
我的问题是:when在这种情况下可以使用而无需编译器警告吗?怎么样?
android ×4
android-doze ×1
kotlin ×1
permissions ×1
preview ×1
remember-me ×1
sdk ×1
webview ×1