我有一个应用程序,用于观察外部存储上的公共目录FileObserver
.它在Lollipop
设备上运行良好.我想添加支持Marshmallow
,所以我用它设置了一个Nexus 9平板电脑.
在Marshmallow设备上,它失败了,在Lollipop设备上它没关系.在Marshmallow设备上,FileObserver
它不会对由其他进程引起的文件系统事件做出反应.例如,截取屏幕截图,通过adb
shell 创建文件.如果文件是由我的应用程序创建的,它可以正常工作.
在Marshmallow
,我要求WRITE_EXTERNAL_STORAGE
和READ_EXTERNAL_STORAGE
权限Manifest.xml
.
当我用API 23编译时,我也确保我打电话ActivityCompat.requestPermissions()
.
当我用API 22编译时,我只是依靠Manifest.xml
.
如果我观察它的话,它会起作用/data/data/my-package-name
.
如果我观察到它,它就会失败/storage/emulated/0/Pictures/Screenshots
.
是否有人测试FileObserver
了以下所有内容?:
Marshmallow
设备adb
或截屏).Google会通过电子邮件通知Android位置权限的更改:
我们将在2016年10月15日进行更改,这将影响使用ACCESS_FINE_LOCATION但未明确拥有"android.hardware.location.gps"使用功能的API版本21(Android 5.0,Lollipop)或更高版本的应用.展望未来,这些应用程序可以安装在没有GPS硬件的设备上.在大多数情况下,这不会成为问题,因为基于Wi-Fi和基于Cell-ID的位置为这些应用的典型操作提供了足够高的保真度.但是,任何需要GPS硬件的应用程序(例如GPS导航仪)都应该明确地将"android.hardware.location.gps"使用功能添加到其清单中.
如果您的应用需要GPS才能正常运行且您的清单声明中未包含,则您的用户可能会遇到较差的应用体验.
此外,如果您正在使用融合位置提供商并希望从GPS接收最准确的位置样本(即使用PRIORITY_HIGH_ACCURACY),则必须在应用清单中包含"android.hardware.location.gps"功能,以确保Google Play只会将您的应用分发给配备GPS传感器的设备.
您可以在Android开发者帮助中心中详细了解此更改.
要从NETWORK_PROVIDER或GPS_PROVIDER接收位置更新,您必须通过在Android清单文件中分别声明ACCESS_COARSE_LOCATION或ACCESS_FINE_LOCATION权限来请求用户的权限.没有这些权限,您的应用程序将在请求位置更新时在运行时失败.
如果您同时使用NETWORK_PROVIDER和GPS_PROVIDER,则只需要请求ACCESS_FINE_LOCATION权限,因为它包含两个提供程序的权限.ACCESS_COARSE_LOCATION的权限仅允许访问NETWORK_PROVIDER.
警告:如果您的应用针对Android 5.0(API级别21)或更高版本,则必须声明您的应用使用清单文件中的android.hardware.location.network或android.hardware.location.gps硬件功能,具体取决于您的应用程序从NETWORK_PROVIDER或GPS_PROVIDER接收位置更新.如果您的应用从这些位置提供商来源中收到位置信息,则需要声明该应用在您的应用清单中使用这些硬件功能.在Android 5.0(API 21)之前运行版本的设备上,请求ACCESS_FINE_LOCATION或ACCESS_COARSE_LOCATION权限包括对位置硬件功能的隐含请求.但是,请求这些权限不会自动请求Android 5.0(API级别21)及更高版本上的位置硬件功能.
我正在使用融合位置提供程序,目标是API 21,并使用ACCESS_FINE_LOCATION
.我没有特别关心GPS是否可用,只是报告了最准确的位置.
android.hardware.location.gps
和android.hardware.location.network
.或者这仅适用于LocationManager
融合位置?我需要android.hardware.location.gps
和android.hardware.location.network
不?
我正在使用相机仅显示预览(不拍照或录制视频).
应用程序始终处于纵向模式(禁用横向模式).相机预览总是旋转90度ccw我无法改变它(无论是setDisplayOrientation
也不是p.set("orientation", "portrait" )
和p.set("rotation", 90) )
.
预览总是像这样旋转还是依赖于设备?如果在纵向模式下总是如此,我可以随后旋转图像.
或者有没有办法正确设置相机?我已经阅读了很多有关此问题的帖子,但没有回答对我有用(Galaxy s2,Android v2.3)
调试我的应用程序在三星手机上的奇怪结果,我没有物理访问权限.我想请用户运行一个已检测的应用程序来帮助调试.我的应用程序获得了view
一个未知(对我来说) - 层次结构(ViewGroups
等).有没有办法"走" View
并打印到字符串/其中的ddms
所有组件View
(ViewGroups
等等)?
这类似于HierarchyViewer
工具 - 如果我有adb
对设备的级别访问权限.
更新:我想我可以使用这个方法
void dumpViewHierarchyWithProperties(Context context, ViewGroup group, BufferedWriter out, int level)
Run Code Online (Sandbox Code Playgroud)
来自ViewDebug.java
Android OS来源......
谁有更好的主意?
谢谢!
我的应用程序中有一条通知,代码如下:
public class NewMessageNotification {
private static final String NOTIFICATION_TAG = "NewMessage";
public static void notify(final Context context,
final String exampleString,final String boday ,final int number) {
final Resources res = context.getResources();
// This image is used as the notification's large icon (thumbnail).
// TODO: Remove this if your notification has no relevant thumbnail.
final Bitmap picture = BitmapFactory.decodeResource(res, R.drawable.billsms);
final String ticker = exampleString;
final String title = res.getString(
R.string.new_message_notification_title_template, exampleString);
final String text = boday;
final NotificationCompat.Builder builder …
Run Code Online (Sandbox Code Playgroud) android ×5
adb ×1
android-gps ×1
camera ×1
fileobserver ×1
geolocation ×1
gps ×1
java ×1
orientation ×1
portrait ×1
rotation ×1