当我在Android M Preview 3上有一个23的目标API时,我似乎无法获得Manifest.permission.WRITE_SETTTINGS权限.
requestPermissions(new String[]{Manifest.permission.WRITE_SETTINGS},
101);
Run Code Online (Sandbox Code Playgroud)
请求权限不会显示我期望的对话框,但如果我未经此许可进行以下调用,
RingtoneManager.setActualDefaultRingtoneUri(activity, RingtoneManager.TYPE_RINGTONE, ringUri);
Run Code Online (Sandbox Code Playgroud)
电话会议除外,因为我没有这个权限.
我不知道从哪里开始.23有新的铃声API吗?或者这个权限更改只是让任何非系统应用程序无法更改铃声?
假设我有一个将targetSDKVersion设置为26的应用程序的小部件.此小部件需要100毫秒到10秒才能更新.大部分时间都在1s以下.在Android O之前,如果在我的AppWidgetProvider上调用了onUpdate(),我可以启动后台服务来更新这个小部件.但是,如果您尝试该行为,Android O将返回IllegalStateException.启动前台服务的显而易见的解决方案似乎是一种极端的措施,可以在99%的时间内在10秒以内完成.
可能的解决方案
我个人并不喜欢上述任何一种解决方案.希望我错过了一些东西.
(更令人沮丧的是,我的应用程序已经被系统调用onUpdate()加载到内存中.我没有看到如何将我的应用程序加载到内存中以调用onUpdate(),但后来没有给我的应用程序1s更新小部件UI线程正在为任何人节省电池寿命.)
multithreading android widget background-process android-8.0-oreo
我读过几个有类似问题的用户,但我找到的解决方案都没有解决我的问题.
我有几台运行Android 4.2.2的Nexus设备,它们都显示为脱机状态,当我插入它们时,它们都没有显示提示.
我已经尝试过:
我有一个带有WiFi锁的Android前台服务,它充当另一个本地设备的Web服务.在打盹模式之前,获取WiFi锁并根据需要提供服务非常有效.
即使关闭了我的应用程序的电池优化功能,当屏幕关闭几分钟时,手机仍然会杀死应用程序.
如何正确警告Android明确地在前台执行客户请求的服务,并且他们此时不希望他们的手机进入睡眠状态?
编辑:这个问题仍然存在于Android 8.0(奥利奥)
借助Android的多窗口支持,如何检测状态栏是否可见?例如,当处于纵向方向时,如果我是顶级应用程序,状态栏可能是可见的,但是当我是底部应用程序时,状态栏可能不可见.现在,我的观点在底部是有趣的,因为我为不再存在的状态栏腾出了空间.
关于这个模糊的错误代码已经有几个问题,但没有人为我解决这个问题,所以我会再试一次.首先,这是用于登录的样板代码.
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestServerAuthCode("web app client ID copied from Dev API Console", false)
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this).enableAutoManage(this, this).addApi(Auth
.GOOGLE_SIGN_IN_API, gso).build();
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
Run Code Online (Sandbox Code Playgroud)
使用此代码,我得到一个对话框,可以选择适当的用户帐户.好极了!但是,然后我在onActivityResult中获取了一个已取消的代码,因此我检查了logcat并注意了标题中的错误消息.然后我搜索有这个问题的其他人,但是我无法弄清楚我的问题是什么.
那么让我们从其他帖子中查看常见问题.
对于可搜索性,在标题中的logcat错误消息之后,我得到以下logcat打印.
你有错误的OAuth2相关配置,请检查.详细错误:INVALID_AUDIENCE
android oauth firebase firebase-authentication google-signin
有人知道如何使用SectionIndexer或RecyclerView的替代品?SectionIndexer允许ListView在快速滚动时弹出部分.
使用Android IAB V3续订订阅时,购买令牌是否保持不变?
依赖购买令牌作为后端服务器上的用户ID是不是一个坏主意?(假设订阅过期时丢弃他们的数据并不是什么大问题)
我收到一份ANR报告,该报告可由用户在我没有的设备上重现.但是,我在自己的代码中看不到线程问题,只有以下内容.
DALVIK THREADS (27):
"main" prio=5 tid=1 Native
| group="main" sCount=1 dsCount=0 obj=0x7682cf40 self=0xb4827800
| sysTid=29689 nice=0 cgrp=apps/bg_non_interactive sched=0/0 handle=0xb6ff4bec
| state=S schedstat=( 194686184 170352917 762 ) utm=10 stm=9 core=3 HZ=100
| stack=0xbe5fd000-0xbe5ff000 stackSize=8MB
| held mutexes=
kernel: (couldn't read /proc/self/task/29689/stack)
native: #00 pc 0003732c /system/lib/libc.so (__epoll_pwait+20)
native: #01 pc 000121bf /system/lib/libc.so (epoll_pwait+26)
native: #02 pc 000121cd /system/lib/libc.so (epoll_wait+6)
native: #03 pc 00010f23 /system/lib/libutils.so (_ZN7android6Looper9pollInnerEi+98)
native: #04 pc 0001114d /system/lib/libutils.so (_ZN7android6Looper8pollOnceEiPiS1_PPv+92)
native: #05 pc 00084d91 /system/lib/libandroid_runtime.so (_ZN7android18NativeMessageQueue8pollOnceEP7_JNIEnvi+22)
native: #06 pc …
Run Code Online (Sandbox Code Playgroud) 背景:在Android 4.4中,Google决定应用程序不应具有对SD卡的写入权限.
但是,应用程序可以写入/ SDCard/Android/data/App Package Name.
所以这就是我所做的.我已经写了一个MP3文件到/ Android/data /.然后我希望这个MP3文件出现在Android音乐播放器中.
我试过以下......
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + filePath)));
和....
MediaScannerConnection.scanFile(this, new String[] { file.toString() }, new String[] {"audio/*"}, new MediaScannerConnection.OnScanCompletedListener() { public void onScanCompleted(String path, Uri uri) { Log.i("ExternalStorage", "Scanned " + path + ":"); Log.i("ExternalStorage", "-> uri=" + uri); } });
和...
ContentResolver.requestSync(CreateSyncAccount(context), MediaStore.AUTHORITY, null);
这两个文件都会将文件作为文件添加到MediaStore,文件内容为:media/external/file/xxxxx
但是,该文件不会添加为音频.我可以更新MediaStore以将文件声明为音频,但不导入文件元数据.
除了编写我自己的标签阅读器之外,如何让媒体扫描仪扫描文件并像在内存和预KitKat SD卡上一样插入元数据?
android audio-player android-music-player android-sdcard android-mediascanner android-4.4-kitkat
我正在制作一个播放音频和大量DSP的Android应用程序.使用BetterBatteryStats,我在HTC One X上发现,当屏幕关闭时,CPU将节流回到384 MHz.对于我正在尝试的DSP处理,这个速度太慢了.
有没有办法让HTC One X在不保持屏幕的情况下移动到这么慢的速度?部分唤醒锁似乎没有削减它.
假设我有一个复杂的矢量图像。路径数据有一个填充颜色。我正在使用需要可绘制资源 ID 的 API。我想给这个 API 三个不同的矢量图像,唯一的区别是颜色。
我找不到一种方法来从 XML 着色矢量图像,只能以编程方式。我认为以下可能有效,但事实并非如此。
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/ic_awesome_bar_play"
android:tint="#a8a8a8" />
Run Code Online (Sandbox Code Playgroud)
我也考虑过使用图层列表,但这不支持着色。任何人都知道如何不制作此矢量图像的三个副本?
尝试为应用内项目启动计费时,我收到以下错误。
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“java.lang.String android.content.Intent.getStringExtra(java.lang.String)”
代码很简单。用户选择一个项目。然后我将该项目传递给 querySkuDetailsAsync。我得到并看到结果。由于 API 原因,我然后调用...
SkuDetails skuDetails = new SkuDetails(skuDetails.getOriginalJSON());
BillingFlowParams flowParams = BillingFlowParams.newBuilder().setSkuDetails(skuDetails).build();
BillingResult billingResult = client.launchBillingFlow(activity, flowParams);
Run Code Online (Sandbox Code Playgroud)
然后,大多数时候,我得到了 NPE。一切正常。我不知道是什么变化导致了这个问题。
请注意,我确实尝试过直接传递 skuDetails,以防 JSON 是问题所在。它没有用。
计费库不是开源的,所以我不知道如何解决这个问题。
android ×13
adb ×1
android-doze ×1
android-wifi ×1
audio-player ×1
colors ×1
cpu-usage ×1
device ×1
drawable ×1
firebase ×1
listview ×1
multi-window ×1
oauth ×1
offline ×1
widget ×1
xml ×1