小编Bas*_*oud的帖子

Android ConnectionService来电

我正在尝试iOS callkit在Android 上实现行为。我收到了来自Firebase的推送通知,并且想向用户显示“来电”屏幕。为此,我使用ConnectionServiceandroid.telecompackage和其他类。

这是我的呼叫管理器类:

class CallManager(context: Context) {
val telecomManager: TelecomManager
var phoneAccountHandle:PhoneAccountHandle
var context:Context
val number = "3924823202"
init {
    telecomManager = context.getSystemService(Context.TELECOM_SERVICE) as TelecomManager
    this.context = context
    val componentName =  ComponentName(this.context, CallConnectionService::class.java)
    phoneAccountHandle = PhoneAccountHandle(componentName, "Admin")
    val phoneAccount = PhoneAccount.builder(phoneAccountHandle, "Admin").setCapabilities(PhoneAccount.CAPABILITY_SELF_MANAGED).build()


    telecomManager.registerPhoneAccount(phoneAccount)
    val intent = Intent()
    intent.component = ComponentName("com.android.server.telecom", "com.android.server.telecom.settings.EnableAccountPreferenceActivity")
    intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP

}


@TargetApi(Build.VERSION_CODES.M)
fun startOutgoingCall() {
    val extras = Bundle()
    extras.putBoolean(TelecomManager.EXTRA_START_CALL_WITH_SPEAKERPHONE, true)

    val manager = context.getSystemService(TELECOM_SERVICE) as TelecomManager
    val phoneAccountHandle …
Run Code Online (Sandbox Code Playgroud)

android voip callkit

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

带引用的auto关键字行为

假设我有一个包含私有成员和getter的简单c ++类:

class MyClass
{
    private:
        double m_testValue = 1;

    public:
        double& getTestValue(){return m_testValue;}
} 
Run Code Online (Sandbox Code Playgroud)

现在让我们说我想调用getter来获取我的引用并编辑这个值(并在值之前/之后打印)

auto testVal = myClassInstance.getTestValue();
std::cout << myClassInstance.getTestValue() << std::endl;
std::cout << testVal << std::endl;
testVal = 3;
std::cout << myClassInstance.getTestValue() << std::endl;
std::cout << testVal << std::endl;
Run Code Online (Sandbox Code Playgroud)

输出是

1
1
1
3
Run Code Online (Sandbox Code Playgroud)

这并不是我所期望的,因为很明显,m_testValue没有被编辑.确实,如果我用double替换auto:

double& testVal = myClassInstance.getTestValue();
std::cout << myClassInstance.getTestValue() << std::endl;
std::cout << testVal << std::endl;
testVal = 3;
std::cout << myClassInstance.getTestValue() << std::endl;
std::cout << testVal << std::endl;
Run Code Online (Sandbox Code Playgroud)

我明白了

1
1
3 …
Run Code Online (Sandbox Code Playgroud)

c++ auto

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

Plotly Dash无法动态创建图

我正在使用绘图破折号创建一个Web应用程序以进行图形生成和回调处理。我使用破折号核心组件v0.18.1

尝试动态添加图形时(每次单击按钮时,都会添加一个新图形),控制台中会出现错误:

bundle.js?v = 0.11.2:9未捕获(承诺)错误:未找到dash_core_components。在Object.resolve(bundle.js?v = 0.11.2:9)在s(bundle.js?v = 0.11.2:9)在Array.map()在s(bundle.js?v = 0.11.2) :9)在Array.map()在s(bundle.js?v = 0.11.2:9)在Array.map()在s(bundle.js?v = 0.11.2:9)在e.value( bundle.js?v = 0.11.2:9)位于p._renderValidatedComponentWithoutOwnerOrContext(react-dom@15.4.2.min.js?v = 0.11.2:13)

我只有一个空白页面,上面有一个按钮和单击后的回调。回调仅用图形填充div。

布局代码:

class ContentController(object):

    graph_names = None

    def __init__(self):
        self.graph_names = []
        # UNCOMMENT THIS LINE TO MAKE IT WORK
        # self.graph_names = ["start_graph"]

    def layout(self):
        return html.Div([html.Button("Add Graph", id='button_id'),
                         html.Div(self.graphics_layout, id='graphics_div')],
                        id='main_div')

    @property
    def graphics_layout(self):
        graphs = []
        for name in self.graph_names:
            graph = self.create_graph()
            graphs.append(dcc.Graph(id=name, figure=graph, style=    {'width': '600px', 'height': '300px'}))

        return graphs

    def create_graph(self):
        graph_data = …
Run Code Online (Sandbox Code Playgroud)

python plotly plotly-dash

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

编写 Espresso 测试时未找到 R.id

我尝试编写一个小测试来尝试 Espresso。

package com.mycompany.myapp.somemodule

import com.mycompany.myapp.R
import other.uselful.imports

@RunWith(AndroidJUnit4::class)
@LargeTest
class DemoTest {

    @get:Rule
    var startActivity: ActivityTestRule<StartActivity> = ActivityTestRule(StartActivity::class.java)


    @Test
    fun aDemoTest() {
        onView(withId(R.id.theElementId))
                .check(matches(isClickable()))
    }
}
Run Code Online (Sandbox Code Playgroud)

Android Studio 没有显示任何错误。如果我 ctrl+click R.id.theElementID,它会在适当的布局文件中找到它。但是,当我尝试运行时,出现编译错误:

未解析的参考:id

我该如何解决这个问题?

android kotlin android-espresso

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

对角矩阵的特征使用

使用Eigen,我有一个Matrix3Xd(3行,n列).我想得到所有列的平方范数

更清楚,让我说我有

Matrix3Xd a =
1    3    2    1
2    1    1    4
Run Code Online (Sandbox Code Playgroud)

我想得到每列的平方范数

squaredNorms =
5    10    5    17
Run Code Online (Sandbox Code Playgroud)

我想利用矩阵计算而不是通过for循环自己进行计算.

我的意思是

squaredNorms = (A.transpose() * A).diagonal()
Run Code Online (Sandbox Code Playgroud)

这有效,但我担心性能问题:A.transpose() * A当我只需要对角线时,它将是一个nxn矩阵(可能是数百万个元素).

Eigen足够聪明,只计算我需要的系数吗?在每列上实现squareNorm计算的最有效方法是什么?

c++ performance eigen

4
推荐指数
1
解决办法
763
查看次数

PyQt/Qt:如何在Qlabel小部件中拉伸图像?

我想在我的应用中显示图像.我使用QtDesigner设计UI,然后使用pyqt进行编码.问题是将显示的图像比UI上的窗口小部件大.我参考官方演示: QT - Widget图像查看器演示

添加imagelabel和scrollArea,代码如下:

---- UI init ----
self.label = QtGui.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(40, 140, 361, 511))
self.label.setSizePolicy(QtGui.QSizePolicy.Preferred,QtGui.QSizePolicy.Preferred)
self.label.setObjectName(_fromUtf8("label"))
self.scrollArea = QtGui.QScrollArea(self.centralwidget)
self.scrollArea.setGeometry(QtCore.QRect(40, 140, 361, 511))
self.scrollArea.setWidget(self.label)
self.scrollArea.setObjectName(_fromUtf8("scrollArea"))

---- function ----
filename = "./Penguins.jpg"
image = QtGui.QImage(filename)
pp = QtGui.QPixmap.fromImage(image)
lbl = QtGui.QLabel(self.label)
lbl.setPixmap(pp)
self.scrollArea.setWidgetResizable(True)
lbl.show()
Run Code Online (Sandbox Code Playgroud)

但它不会拉伸图像,即使没有滚动条出现!

qt pyqt

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

c# event, unregister without prior register

Weirdly I haven't been able to find an answer in the doc or on the web although it seems to be a simple question:

Imagine I registered to a c# event in a conditional block:

void Execute()
{
    if(loader.AlreadyCompleted)
    {
        DoSomething();
    }
    else
    {
        loader.Completed += DoSomething;
    }
}
Run Code Online (Sandbox Code Playgroud)

In this example, a loader will trigger the Completed event. If it already happended AlreadyCompleted will be true, otherwise it is false and I want to register to the Completed event …

c# events

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

当我更改 int 值时,字符串中的 int 不会更改

所以我正在制作一个在字符串中使用 int 值的代码(硬编码 btw),它可以工作,但是当我通过单击按钮增加 int 的值时,字符串中的 int 不会随着增量而改变。

int indexOfQuestion= 1; 
numberOfQuestion.setText("Question " + indexOfQuestion + " from " + lengthOfQuestion + " :" );
switch(v.getId()):
case R.id.next:
indexOfQuestion = indexOfQuestion+1;
Run Code Online (Sandbox Code Playgroud)

因此,当我单击按钮时,numberOfQuestion 中的 indexOfQuestion 保持为 1。如何在没有冗长代码的情况下按照我的意图自动更改它?谢谢

java android

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

标签 统计

android ×3

c++ ×2

android-espresso ×1

auto ×1

c# ×1

callkit ×1

eigen ×1

events ×1

java ×1

kotlin ×1

performance ×1

plotly ×1

plotly-dash ×1

pyqt ×1

python ×1

qt ×1

voip ×1