我一直试图让这项工作好几天,没有运气,所以我想我会分享信息,也许有人想出一个解决方案.
我想在软键盘启动时获得确切的视口大小.我目前在标题上使用以下代码,以便网站响应:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
Run Code Online (Sandbox Code Playgroud)
我意识到当软键盘出现时,它使用设备高度作为视口高度并向上推动站点的其余部分 - 这使我认为它从width = device-width选项获得它的高度.
启动软键盘后使用以下代码:
setTimeout(function() {
viewport = document.querySelector("meta[name=viewport]");
viewport.setAttribute('content', 'height=auto');
}, 300)
Run Code Online (Sandbox Code Playgroud)
然后使用jquery获取高度在Android上显示CORRECT结果 - 也就是可见的视口大小,没有虚拟键盘,但在iOS上没有.我得到一个随机数,我假设源于其余的元标记不存在,所以我得到了网站的放大版本以及75或100之类的数字(在iphone 4s上)
我也尝试在键盘上升后创建一个固定元素,使其使用top:0的视口高度; 和底部:0; 属性,但我仍然得到原始的高度.
更接近这一点的是将视口元标记高度设置为固定值,可以通过jquery获取$(window).height(),这意味着元标记在启动键盘后实际上有所不同,但是对于固定的没有真正的价值高度.
我已经看到很多关于此的主题,但没有一个解决方案.有解决方案吗?
我遇到了崩溃问题我们面临的一个空指针异常仅与奥利奥的自动填充相关.下面是堆栈跟踪
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method
'boolean com.android.server.autofill.RemoteFillService$PendingRequest.cancel()' on a null object reference
at android.os.Parcel.readException(Parcel.java:1965)
at android.os.Parcel.readException(Parcel.java:1905)
at android.app.IActivityManager$Stub$Proxy.reportAssistContextExtras(IActivityManager.java:8297)
at android.app.ActivityThread.handleRequestAssistContextExtras(ActivityThread.java:3210)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Caused by android.os.RemoteException: Remote stack trace:
at com.android.server.autofill.RemoteFillService.cancelCurrentRequest(RemoteFillService.java:177)
at com.android.server.autofill.Session.cancelCurrentRequestLocked(Session.java:465)
at com.android.server.autofill.Session.access$1000(Session.java:118)
at com.android.server.autofill.Session$1.onHandleAssistData(Session.java:322)
at com.android.server.am.ActivityManagerService.reportAssistContextExtras(ActivityManagerService.java:14713)
Run Code Online (Sandbox Code Playgroud)
这并没有说明为什么会发生这种情况的确切原因.
我想让用户与WhatsApp小组共享URL +文本.我希望这可以从iPhone和Androids工作.但是我的应用程序是在浏览器中(它是一个网站).我目前正在研究两种选择,但两者都存在问题:
1)第一个潜在的解决方案 - 直接从浏览器共享.
我检查了WhatsApp的URL架构并使用以下URL通过我的应用程序共享:
"whatsapp://send?text=Hello%2C%20World!"
Run Code Online (Sandbox Code Playgroud)
但是这种方法存在一些问题:
abid).首先,我不知道如何访问用户的abid?其次,我试图发送给一个小组,在这种情况下没有abid(对吗?),因此似乎不可能这样做.真的吗?此外,Android应用程序会发生什么?对于一群人来说,与abid相比有什么可比性,我该如何得到它?2)第二个潜在的解决方案 - 创建一个与基于浏览器的应用程序完全相同的本机应用程序,但是这个特定部分(我们执行"共享")是原生的.
但是,在我看来,在这种情况下,我遇到的问题与上述问题非常相似:
我有一个背景图像的布局,并有一个按钮.按钮的背景颜色是白色.现在我想在其上写一个文本,使文本显示按钮后面的任何内容(如透明文本).现在,显然,如果我使文本颜色透明,文本将消失,我将看到一个没有文本的白色按钮.这该怎么做?
截图:

我有一个带有信用卡输入表格的webview(带有标准<input type="text" />字段).在不同版本的Android中,我会得到不同的键盘.Kit-Kat似乎在表单内部不显示Prev/ Next键.
没有Prev/的示例Next:

相同的webview,带Prev/ Next:

我试图在Android Studio中使用Android设备监视器,但不知怎的,我设法删除所有视图.
我已经尝试重置透视图,Window-> Show View - >(Any View),甚至重新安装Android Studio但没有显示任何内容.

有谁知道如何将设备监视器重置为其默认视图?(左侧是设备,右侧是堆/线程/分配视图.)
谢谢你的帮助!
当我跑步时git status,这就是我所看到的:
$ git status
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
You are in the middle of an am session.
(fix conflicts and then run "git am --continue")
(use "git am --skip" to skip this patch)
(use "git am --abort" to restore the original branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- …Run Code Online (Sandbox Code Playgroud) 我NotificationListenerService用来处理设备通知:
@Override
public void onNotificationPosted(StatusBarNotification sbn) {
Log.d(TAG,"onNotificationPosted posted - ID :" + sbn.getId() + "\t"
+ sbn.getNotification().tickerText + "\t" + sbn.getPackageName());
}
Run Code Online (Sandbox Code Playgroud)
onNotificationPosted()在设备上发布通知后调用该方法.有没有办法在呈现之前捕获它?
我看到也可以使用AccessibilityManager实现阅读通知, 但在弹出通知后再次阅读.
有没有办法延迟设备通知弹出窗口,直到某个时刻?
我知道我可以使用NotificationListenerService它来删除通知(在它弹出给用户之后)并保存并稍后尝试重新启动它.但是我遇到了重新启动的问题,并且在状态栏通知已经显示之后再次发生这种情况.
我正在使用Android Studio v.1.0我的构建文件:
buildTypes {
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试发布版本时,我收到一个错误:错误:任务':app:proguardRelease'的执行失败.
java.io.FileNotFoundException:F:....\app\proguard-rules.pro(找不到文件)
我想,proguard-android.txt是Android SDK的一部分,对吗?
为什么Android Studio找不到它?
我也试过proguard-android.pro - 结果相同
我正在开发一个功能,当按下按钮时,它将启动语音识别,同时记录用户说的内容.代码如下:
button_start.setOnTouchListener( new View.OnTouchListener()
{
@Override
public boolean onTouch(View arg0, MotionEvent event)
{
if (pressed == false)
{
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,"voice.recognition.test");
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "zh-HK");
intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS,1);
sr.startListening(intent);
Log.i("111111","11111111");
pressed = true;
}
recordAudio();
}
if((event.getAction()==MotionEvent.ACTION_UP || event.getAction()==MotionEvent.ACTION_CANCEL))
{
stopRecording();
}
return false;
}
});
}
public void recordAudio()
{
isRecording = true;
try
{
mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setOutputFile(audioFilePath);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.prepare();
}
catch (Exception e)
{
e.printStackTrace();
}
mediaRecorder.start();
}
public void stopRecording()
{
if (isRecording) …Run Code Online (Sandbox Code Playgroud)