小编Cil*_*nco的帖子

在Android 2.3中通过锁屏显示触摸事件的对话框

我想构建一个在锁屏上可见的对话框,可以接收触摸事件.我构建了一个窗口,WindowManager但只有TYPE_SYSTEM_OVERLAY标志显示在GB(Android 2.3.7)的锁屏上.

有没有办法创建一个在锁屏上可见的系统覆盖,并可以在Android 2.3.7中接收触摸事件?

有一个错误,FLAG_WATCH_OUTSIDE_TOUCH但我不确定这对我有什么影响.有任何想法吗?

android overlay android-windowmanager

7
推荐指数
1
解决办法
5130
查看次数

不会触发聚合物单击事件

目前我正在尝试使用Polymer的第一步.现在我有一个带有纸质按钮的简单页面,但我无法为其注册点击事件.我试过这段代码:

<paper-button raisedButton 
              id="test"
              class="colored" 
              label="Click"
              link="http://twitter.com"
              on-click="{{ goLink }}">
</paper-button>

<script>
        Polymer('#test', {
            goLink: function(e) 
            {
                window.location.href = e.target.getAttribute('link');
            }
       });
</script>
Run Code Online (Sandbox Code Playgroud)

不会触发click事件.代码有什么问题?第二个问题:我应该使用on-clickon-tab在我的代码中吗?

javascript polymer

7
推荐指数
1
解决办法
2万
查看次数

在连接到GATT服务器时从未调用过onServicesDiscovered

我有一个蓝牙耳机,它与我的Nexus 5X(运行Android 7.1)配对,我想连接到耳机的GATT服务器.我用以下代码尝试了它:

private BluetoothGattCallback btleGattCallback = new BluetoothGattCallback() {
    @Override
    public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
        Log.d(TAG, "onConnectionStateChange: " + status + ", " + newState);

        if(newState == STATE_CONNECTED) {
            Log.d(TAG, "Device connected");
            boolean ans = gatt.discoverServices();
            Log.d(TAG, "Discover Services started: " + ans);
        }
    }

    @Override
    public void onServicesDiscovered(BluetoothGatt gatt, int status) {
            Log.d(TAG, "Number of Services: " + gatt.getServices().size());
    }
};

public void onDeviceClicked(BluetoothDevice device) {
    BluetoothGatt gatt = device.connectGatt(this, false, btleGattCallback);
    Log.d(TAG, "Connected …
Run Code Online (Sandbox Code Playgroud)

android bluetooth bluetooth-lowenergy

7
推荐指数
2
解决办法
5237
查看次数

从引用创建shared_ptr

我相对来说是C++的新手,这个问题就像一个noob问题,但我无法用互联网上的其他资源来解决它.

我正在尝试从引用创建shared_ptr.我有以下Book课程:

#include <memory>
#include "Author.hpp"

class Book
{
   public:
      void setAuthor(const Author& t_author);

   private:
      std::shared_ptr<Author> m_author;
}
Run Code Online (Sandbox Code Playgroud)

这是我的Author班级:

#include <memory>
class Book;

class Author
{
   public:
      void addBook(const Book& t_book);

   private:
      std::vector<std::weak_ptr<Book>> m_books;
}
Run Code Online (Sandbox Code Playgroud)

我厌倦了实现这样的Book::setAuthor方法:

void Book::setAuthor(const Author& t_author)
{
   m_author = std::shared_ptr<Author>(&t_author);
}
Run Code Online (Sandbox Code Playgroud)

但如果我尝试编译这个,我得到:

从const Author*到Author*的Invalide转换

从sizeof到const Author的Invalide转换

你能告诉我我的代码有什么问题吗?我也尝试使用weak_ptr,但这也不起作用.

c++ shared-ptr

7
推荐指数
2
解决办法
2万
查看次数

结合使用NavController和首选项

我目前正在将应用程序迁移到androidX和新的导航组件。我的应用程序具有彼此嵌套的不同设置屏幕。在androidX之前,PreferenceScreen它们彼此嵌套。现在,这被处理为:

<Preference
    app:fragment="com.example.SyncFragment"
    .../>
Run Code Online (Sandbox Code Playgroud)

因此,在XML中,我们PreferenceFragmentCompat通过单击该首选项为要显示的类提供一个绝对的类名。片段事务必须由保存片段的Activity来实现。我很乐意这样做,NavControler但这是我的问题:

override fun onPreferenceStartFragment(caller: PreferenceFragmentCompat, pref: Preference): Boolean {
    val nav = Navigation.findNavController(this, R.id.nav_host_fragment)
    nav.navigate(<Fragment ID>) // Only int IDs can be passed here
    return true
}
Run Code Online (Sandbox Code Playgroud)

有什么办法可以给pref我通过此回调获得的引用ID,以便我可以使用来处理片段事务NavControler?还是我在这里使事情复杂化而错过了什么?

android android-navigation androidx

7
推荐指数
0
解决办法
128
查看次数

在二叉树中,找到有多少祖父只有两三个孙子

                                   8
                                /      \
                              4         12
                             / \         / \
                           3    6       2   1
                          / \   / \    /   / \
                         7  10 13 15  5   9  11
                                             /
                                            14 
Run Code Online (Sandbox Code Playgroud)

我需要找到一棵树的祖父,在这个例子中,我只有一个祖父,12号(我需要他只有两三个孙子).

这是我到目前为止所尝试的:

int T(struct node * tree){
    int t = 0;
    if (tree == NULL)
        return 0;
    if (tree->left && tree->right)
    {    //In this case i check if we NOT have all the four grandchildrens.
        if (!((tree->left->left) && (tree->left->right) && (tree->right->left) && (tree->right->right)))
        {
            t =  1 + T(tree->left) + T(tree->right); …
Run Code Online (Sandbox Code Playgroud)

c c++ binary-tree

6
推荐指数
1
解决办法
568
查看次数

找出是否安装了应用程序

我认为问题就是这样:找出用户是否在手机上安装了Facebook或Whatsapp的最佳方法是什么?我是否需要查看包裹或者最好的方法是什么?

android facebook package whatsapp

5
推荐指数
1
解决办法
6488
查看次数

仅使用OnTouchListener从ListView获取项目

在我的应用程序中,我有一个Touchlistener用于我的ListView.使用TouchListener,我可以从触摸事件中获取X和Y坐标.现在我想从ListView获取被点击的项目.如何使用onTouchListener获取listView中单击项的位置?我不想使用onItemClickedListener.

android ontouchlistener android-listview

5
推荐指数
1
解决办法
1万
查看次数

SQLite递归查询返回文件路径

目前我正在开发一个应用程序,它必须在数据库中存储文件层次结构(不区分文件夹和文件)。为此创建了下表:

tbl_files
----------------------------------
|   id   |   name   |   parent   |
----------------------------------
Run Code Online (Sandbox Code Playgroud)

父字段对tbl_files自身来说是外来的。主目录具有 id root。我现在想获取文件的路径,直到到达根目录。我想用递归 SQL 查询来做到这一点,但我不知道如何从数据库“返回”路径。

递归查询是好的还是不好的做法?我应该如何使用此查询“生成”路径?

sql sqlite

5
推荐指数
1
解决办法
1239
查看次数

TileService 是否被视为前台进程

在 Android O 中,我们有一些新的背景限制。例如,我们只能通过该Context.registerReceiver方法注册隐式广播。当系统终止我们的进程时(例如由于内存不足),注册的接收器也将被销毁。

为了减少系统杀死我们的进程的机会,我们必须告诉系统该进程仍然在前台。根据文档,如果满足以下任一条件,则应用程序被视为位于前台:

  • 它有一个可见的活动,无论该活动是启动还是暂停。
  • 它有一个前台服务
  • 另一个前台应用程序通过绑定到其服务之一或使用其内容提供商之一来连接到该应用程序。例如,如果另一个应用程序绑定到该应用程序,则该应用程序位于前台:
    1. 壁纸服务
    2. 通知监听器
    3. 语音或文字服务

如果这些条件都不成立,则该应用程序将被视为在后台运行。

TileServiceAndroid N 中引入的(用于快速设置图块)怎么样?当我们在 mainfest 文件中注册 a TileServiceasACTIVE_TILE时,系统不会在每次磁贴变得可见时绑定服务(如本文所述,因此我们的服务在系统进程中绑定到另一个应用程序。

那么我的应用程序(只要将图块添加到快速设置窗格中)是否被视为前台应用程序?这会很好,因为我不需要使用这种方法发出持久通知,并且用户仍然可以在后台发送我的应用程序(通过删除磁贴)

android android-service android-service-binding android-8.0-oreo

5
推荐指数
1
解决办法
1795
查看次数