我正在使用> = 4.3 NotificationListenerService来访问通知.在第一次启动时,我的应用程序将用户带到"访问通知"系统面板,但是只要禁用"访问通知"中我的应用程序的复选框,我就会将用户带到那里.我没有在isNotificationAccessEnabled()任何地方找到一个方法,但我肯定知道这是可能的,因为像Krome这样的应用程序也是这样做的.
例如,我可以使用和开始ApplicationContext工作吗?SharedPreferencesRemoteService
从逻辑上讲,我认为我可以.这种方法有细微差别吗?
Google Play服务组件是始终确定用户当前的活动,还是仅在连接应用以接收活动更新时?该文件是不是这个是很清楚,它只是说,它在一般最小的电池影响.我想知道一个应用程序是否经常查询用户当前的活动(例如,间隔2分钟)是否会给用户的电池带来额外的压力.
我希望从对象中获取尽可能多的信息StatusBarNotification.现在,唯一可以访问的"可靠"信息是tickerText-property.我正在使用以下代码来获取通知的标题和文本RemoteViews,但很多时候,标题和/或文本将只是空:-(:
//Get the title and text
String mTitle = "";
String mText = "";
try {
RemoteViews remoteView = sbn.getNotification().contentView;
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ViewGroup localView = (ViewGroup) inflater.inflate(remoteView.getLayoutId(), null);
remoteView.reapply(getApplicationContext(), localView);
TextView tvTitle = (TextView) localView.findViewById(android.R.id.title);
TextView tvText = (TextView) localView.findViewById(16908358);
mTitle = (String)tvTitle.getText();
mText = (String)tvText.getText();
} catch (Exception e){
Log.e(TAG, "Error getting notification title/text: " + e);
}
Run Code Online (Sandbox Code Playgroud)
有没有替代方案(更可靠)?我可以"手动编码""热门"通知(如Gmail,短信等)的资源ID,但这可能会在这些应用程序更新时随时中断.谢谢!
我的应用程序通过调用(in onCreate)使用新的"沉浸式模式" :
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
这很好用,但每次启动活动时都会显示"操作方法"弹出窗口("从顶部向下滑动以退出全屏")(如果在显示活动时手机被锁定),即使用户已经承认了弹出窗口.据我所知,弹出窗口是由系统自动生成的,所以我无法改变这种情况,对吗?
此问题可重现如下:
如果活动启动,关闭和重新启动而不点击两者之间的电源按钮,弹出窗口不会重新出现.此外,只有在按下电源按钮时活动位于最顶层时,它才会重新出现.
更正:需要通过调用"finish()"(例如,从按钮或菜单选项)关闭活动.如果活动被反键关闭,它可以正常工作.
我在这里上传了一个示例应用程序:https://github.com/niko001/com.greatbytes.immersivebug/tree/master/Test5
编辑:现在有一个Xposed模块禁用"恐慌模式",所以我想我并不孤单,看到这是一个烦恼;)
用户希望我的应用程序在使用后关闭屏幕.目前,我使用设备管理员权限实现此目的,DevicePolicyManager.lockNow()如果安全设置设置为PIN/Pattern/FaceUnlock等,则可以正常工作.
但是,如果使用Slide/None,上面的命令只是将用户带到主屏幕(或者什么都不做),这是可以理解的,因为没有什么可以"锁定".在这种情况下有没有办法实现关闭屏幕?我的应用需要SDK> = 16,如果这很重要.
所以我想我的问题是:如何能在应用可靠地关闭屏幕(我不是拿着wakelock,我使用的是WindowManager-flags FLAG_TURN_SCREEN_ON中onAttachedToWindow()).
在我的应用程序"流"是:
-活动是由一个意图开始,而屏幕关闭,显示键盘锁以上/使用上述标志在屏幕上的开关
-用户积极驳回我的活动,我打电话lockNow()和finish()和用户希望屏幕关闭.如果用户使用none/slide lock,则不起作用,而是显示用户的主屏幕
谢谢!
我的应用程序侦听USER_PRESENT意图.但是,自定义锁定屏幕替换(例如WidgetLocker和GO Locker)不能/无法发送此受保护的广播.
WidgetLocker通过广播自己的自定义意图为此提供了一种解决方法(例如com.teslacoilsw.widgetlocker.intent.UNLOCKED,请参见此处).GO Locker提供类似的意图吗?我无法找到任何相关信息.
我想启动默认摄像头,但希望它像从启动器启动一样(即生成的图片应该由相机应用程序存储到用户的图库,而不是返回到我的应用程序).如果我使用Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);,相机应用程序使用"确定?重试?" - 用户界面并不保存图片.我宁愿不使用"直接" com.android.camera意图,因为很多设备都使用自定义相机应用程序.我已经看到库存gallery3d-app使用别名实现com.android.camera/.Camera,但我不确定每个预先加载的制造商相机应用程序是否这样做.
当我的应用程序在屏幕变黑时执行某些操作,但我希望它只执行该任务,如果屏幕被"自身"关闭,通过屏幕超时 - 而不是当用户按下电源按钮时.有没有办法区分这两个事件?
ACTION_SCREEN_OFF 两种情况下都明显会发生火灾,而且我还没有找到任何其他可能与我正在寻找的意图相符的意图.
谢谢你的帮助,尼克
是否正在努力将新的Material Design样式和小部件向后移植到Android的前L版本,类似于"HoloEverywhere" - 图书馆?该库的创建者初始化了一个空的GitHub存储库,但它似乎没有处于活动开发状态.我知道有一个L风格的对话框和浮动动作按钮的后端,但显然有更多的小部件在Android L中发生了变化.
Android团队是否公布了他们是否正在开发支持库(超出目前可用的支持库)?
android android-support-library material-design android-5.0-lollipop android-design-library