在我的应用程序,我一直在使用一些功能都上来为unknown采用Android 6.0(时buildToolsVersion "23.0.1"),该函数是:Browser.getAllVisitedUrls(getContentResolver());,BookmarkColumns.URL,等.
如何在Android 6.0中使用相同的功能.
在Android 6.0中已更改的内容列表中,我看到以下内容:
此版本删除了对全局书签的支持.现在删除了android.provider.Browser.getAllBookmarks()和android.provider.Browser.saveBookmark()方法.同样,删除了READ_HISTORY_BOOKMARKS和WRITE_HISTORY_BOOKMARKS权限.如果您的应用面向Android 6.0(API级别23)或更高版本,请勿访问全局提供商的书签或使用书签权限.相反,您的应用应该在内部存储书签数据.
这到底是什么意思?**Instead, your app should store bookmarks data internally**???
我正在访问使用Chrome浏览器应用访问的网站历史记录(当然是明确的用户权限),如何继续这样做?
在Android 6.0(棉花糖)中,即使从应用程序内部授予了权限,用户也可以撤消特定的应用程序权限。我知道我可以使用来检查权限ContextCompat.checkSelfPermission()。但是,当用户撤销我的应用程序权限之一时,是否有一种方法可以让我的应用程序得到通知,而无需反复检查ContextCompat.checkSelfPermission()?也许是广播/意图或类似的东西?
在此先感谢您的帮助。
我有一个现有的应用程序,我想实现Android 6.0的运行时权限.我在运行时权限上已经阅读了很多不同的东西,但我似乎无法绕过所有不同的片段.我找到的任何内容实际上都没有显示如何将其实现到现有的Activity中.
当我运行针对SDK v23的现有应用程序时,我得到了预期的权限错误,但我得到的权限错误甚至不是我请求的权限.我在Manifest文件中有SEND_SMS权限,但我得到的错误是READ_SMS.我的应用程序在6.0之前运行正常,没有READ_SMS.
我希望我的应用程序在应用程序启动后立即请求许可,因为应用程序的唯一目的是发送短信,因此没有该权限,该应用程序没有其他用途.
一旦应用程序启动,我如何将SEND_SMS的运行时权限实现到我现有的Activity中?
这些权限的处理是否需要在后台线程中运行?
我是否还需要READ_SMS的权限,因为这是它给出的权限错误(即使该权限从未在我的应用程序上使用过)?
public class MainActivity extends Activity implements OnClickListener {
SimpleCursorAdapter mAdapter;
AutoCompleteTextView txtContract;
EditText txtTrip;
EditText txtDate;
Button btnSend;
Button btnUpdate;
String today;
String SENT = "SMS_SENT";
String DELIVERED = "SMS_DELIVERED";
private static final String API_KEY = "abcxyz";
private static final String CONTRACT_REGEX = "^([a-zA-Z0-9_-]){5}$";
private static final String TRIP_REGEX = "^([a-zA-Z0-9_-]){1,10}$";
private static final String DATE_REGEX = "^\\d{2}\\/\\d{2}\\/\\d{4}$";
private static final String PHONE_NUMBER = "1234567890";
private static final …Run Code Online (Sandbox Code Playgroud) 给定一个带有MultiSelectListPreference的SettingsActivity及其数组资源中的条目,值和默认值,即使Android知道应该检查它们,也不会将某些复选框绘制为已选中.单击未选中的项目时,该项目仍未选中(因为Android认为它取消选中已选中的项目).
项目可在此处获取:https://github.com/ImmersibleElf/MSLPBug
它似乎在API 21和22中运行良好,但在23中没有.这可能是回收视图中的错误吗?或者可能是什么原因?
SettingsActivity.java
package com.immersibleelf.mslpbug;
import android.os.Bundle;
import android.preference.PreferenceFragment;
import android.support.v7.app.AppCompatActivity;
public class SettingsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Display the fragment as the main content.
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new SettingsFragment())
.commit();
}
@Override
public void onPause() {
super.onPause();
}
public static class SettingsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the settings from an XML resource
addPreferencesFromResource(R.xml.settings);
}
}
}
Run Code Online (Sandbox Code Playgroud)
的settings.xml
<?xml version="1.0" …Run Code Online (Sandbox Code Playgroud) android android-checkbox android-multiselectlistpreference android-6.0-marshmallow
我正在一个Android 6中测试一个应用程序,我需要通过DOZE,因为我想请求用户接受电池优化的重要性.
在项目 AntiDoze中,但是当我在虚拟设备中运行时我没有任何问题,但是当我传递给三星时,我得到:
FATAL EXCEPTION: main
Process: com.commonsware.android.antidoze, PID: 21135
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.commonsware.android.antidoze/com.commonsware.android.antidoze.EventDemoActivity}: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS dat=package:com.commonsware.android.antidoze }
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3253)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3349)
at android.app.ActivityThread.access$1100(ActivityThread.java:221)
Run Code Online (Sandbox Code Playgroud)
知道如何传递这个问题吗?
链接中重要的代码是:
if (Build.VERSION.SDK_INT>Build.VERSION_CODES.LOLLIPOP_MR1) {
String pkg=getPackageName();
PowerManager pm=getSystemService(PowerManager.class);
if (!pm.isIgnoringBatteryOptimizations(pkg)) {
Intent i=
new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS)
.setData(Uri.parse("package:"+pkg));
startActivity(i);
}
}
Run Code Online (Sandbox Code Playgroud)
在我的清单中
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
Run Code Online (Sandbox Code Playgroud) 我有一个Android应用程序,正在生产运行了几年.最近,我发现应用程序中的ListView存在问题,滚动时会变得模糊.该问题仅发生在Android Marshmallow下.
任何帮助将非常感激.
谢谢!
我按照这个或这个上传图像并捕获上传图像从图库或相机到网络视图
我在这里工作在android 6+但在这里我得到Gallery或Filemanager不是相机...
任何人都可以建议我只获得Camera Intent(图库或文件管理员)..要在webview中捕获和上传..
我得到以下选项
我没有得到相机意图在webview ..它在浏览器和上传图像工作正常但不在网络视图请帮助...
更新1
当我点击Android系统时,我正在获取相机
是否有可能直接在网络视图中获取相机..请帮助在Android 6+我甚至没有得到Android系统意图..没有选择相机选项....
但同样的事情是在浏览器中工作..不在Web视图中
更新2
通过在模拟器中使用它同样只显示相机选项..但在真实设备中它显示文件管理器或Android 6+的图库没有相机选项我试过几乎所有品牌甚至Redmi和YU也
在这里我尝试使用自定义相机但在那里我无法上传图片请帮助
任何人建议我这个
代码:
void clearCache() {
if (mClearCacheObserver == null) {
mClearCacheObserver = new CachePackageDataObserver();
}
PackageManager mPM = getPackageManager();
@SuppressWarnings("rawtypes")
final Class[] classes = {Long.TYPE, IPackageDataObserver.class};
Long localLong = Long.valueOf(CACHE_APP);
try {
Method localMethod =
mPM.getClass().getMethod("freeStorageAndNotify", classes);
localMethod.setAccessible(true);
// Start of inner try-catch block
try {
localMethod.invoke(mPM, localLong, mClearCacheObserver);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch …Run Code Online (Sandbox Code Playgroud) 在android TTS中使用addSpeech(),您可以将某个文本链接到声音文件.然后,TTS引擎播放文件而不是合成文本的声音(在Android TTS(文本到语音)的addSpeech()中也有问题)并且speak()无法在棉花糖的外部存储器中播放声音文件(api 23)上面,谷歌TTS).这在使用TTS版本3.9.14(和3.10.10)的Android 6.0中不起作用.到目前为止,我没有看到ant post的答案,为什么这在Android 6.0中不起作用.所以我想我会提供更多关于这个问题的数据,这可以帮助有人找出问题所在.(我已将此添加到上面链接中的问题,但主持人删除了它说这不是答案.他们没有建议添加更多这样的数据,除了说另一个问题.因此这个问题.实际上这是关于尚未回答的同一问题的其他数据).所以这里.
在清单中,我使用TTS(后者又使用Media Player)为应用程序提供了读取和写入权限,以播放所提供的语音文件.
android:targetSdkVersion="22"
...
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)
请注意,这适用于Android 5.0,但在android 6.0上失败(除非将res/raw中的文件用作语音文件).此外,当它失败时,它似乎在logcat中给出略有不同的错误,具体取决于语音文件是在内部存储还是外部存储.
当res/raw文件夹中的语音文件时,TTS使用资源ID(addSpeech(word,pkgName,resId))正常播放所需的语音文件
当语音文件位于外部存储器上时(/ storage/sdcard0/pkgName/soundFiles/..使用TTS播放会给出EACCES失败日志(对于amr和mp3文件).
09-08 16:57:17.514 1549-7830/? D/MediaPlayer: create failed:
java.io.FileNotFoundException: /storage/emulated/0/pkgName/soundFiles/voice1.amr: open failed: EACCES (Permission denied)
at libcore.io.IoBridge.open(IoBridge.java:487)
at java.io.FileInputStream.(FileInputStream.java:76)
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1115)
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1066)
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1003)
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:983)
at android.media.MediaPlayer.create(MediaPlayer.java:890
at android.speech.tts.AudioPlaybackQueueItem.run(AudioPlaybackQueueItem.java:58)
at android.speech.tts.AudioPlaybackHandler$MessageLoop.run(AudioPlaybackHandler.java:134)
at java.lang.Thread.run(Thread.java:818)
Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied)
at libcore.io.Posix.open(Native Method)
at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
at libcore.io.IoBridge.open(IoBridge.java:473)
at java.io.FileInputStream.(FileInputStream.java:76)
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1115)
at …Run Code Online (Sandbox Code Playgroud)android text-to-speech media-player google-text-to-speech android-6.0-marshmallow
我有一个应用程序,智能手机必须通过SSLSocket连接到本地服务器.我在5款不同的智能手机上测试了我的应用程序:Moto G2(6.0),Redmi 3S(6.0.1),LG K5(6.0),Moto G5 Plus(7.1.1)和OnePlus 5(8.0).Moto G5 Plus是唯一一个能够解决这个问题的人.
这是导致问题行为的线.所有测试都在同一网络上完成.
socket = (SSLSocket) sslContext.getSocketFactory().createSocket(serverAddress, serverPort);
Run Code Online (Sandbox Code Playgroud)
对于这种行为,Moto G5 Plus或Android 7+是否存在任何已知问题?
编辑:一些更多的测试导致Android系统的想法试图强迫Socket通过移动网络连接时识别WiFi接口已连接,但没有互联网.有没有办法强制Socket使用WiFi而不是移动网络?
sockets android motorola android-6.0-marshmallow android-7.0-nougat
android ×10
android-doze ×1
android-multiselectlistpreference ×1
camera ×1
listview ×1
media-player ×1
motorola ×1
sockets ×1
webview ×1