小编Mag*_*les的帖子

Android:将应用与自定义文件类型相关联

我有一个文件类型,扩展名是'.rfts'(实际上它只是存储一个代表音频放大器用户配置的JSON字符串).我希望能够在电子邮件附件(例如Gmail)中打开此文件,以便我可以从其他平板电脑导入用户设置.

这是我的清单看起来的样子(请注意,我没有在其中包含其他活动,但还有其他4个没有意图过滤器).

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/RFtheme" >
    <activity
        android:name=".activity.MainActivity"
        android:screenOrientation="landscape"
        android:windowSoftInputMode="adjustPan" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="android.intent.category.BROWSABLE"/>
            <category android:name="android.intent.category.OPENABLE"/>
            <data android:scheme="file"/>
            <data android:mimeType="*/*"/>

            <data android:pathPattern="\\.rfts$"/>
            <data android:host="*"/>
        </intent-filter>
    </activity>

    <provider
        android:name=".model.FileProvider"
        android:authorities="com.rockfordcorp.app3sixty.provider"
        android:enabled="true"
        android:exported="true" >
    </provider>
</application>
Run Code Online (Sandbox Code Playgroud)

我一直在尝试其他问题的其他一些建议修复,但它们用于从浏览器打开pdf等内容.

当我尝试在Gmail中打开.rfts附件时,它会告诉我"您没有可以打开此文件的应用程序(.rfts).尝试搜索谷歌播放可以"

我不知道我需要在这里做些什么.我不知道Gmail会用什么来打开.rfts,也不知道它会使用什么方案.我尝试了几种不同的组合,但没有真正奏效.我还没有把Android正在寻找的类别,mimetype,模式和方案的神奇组合放到我的应用程序中.

编辑 成功,但尚未完成.

建议作为修复的问题是不合适的,原因是因为所需的方案实际上是"内容",而不是"文件"

有效的意图过滤器是

<intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="android.intent.category.BROWSABLE"/>
            <data android:scheme="file" android:mimeType="*/*" android:pathPattern=".*\\.rfts"/>
            <data android:scheme="content" android:pathPattern=".*\\.rfts" android:mimeType="application/octet-stream" />
            <!-- <data android:host="*"/> -->
        </intent-filter>
Run Code Online (Sandbox Code Playgroud)

没有 …

android file-association

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

电子“窗口”未定义

我正在尝试构建一个使用Google Charts API绘制折线图的应用程序。我设置的一件事是窗口上的'resize'事件的事件监听器。这将触发折线图重新绘制,尺寸设置为“ window.innerWidth”和“ window.innerHeight”以适应新的窗口大小。

如果我使用npm start运行应用程序,那么一切都很好。问题是当我使用电子打包程序构建应用程序时。运行它生成的exe会抛出此错误:在此处输入图片说明

这是我的HTML:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>AP Test Viewer</title>
    <link rel="stylesheet" href="css/styles.css">

  </head>
  <body ng-app="ApApp" ng-controller="MainController">

    <a ui-sref="single">Single</a>
    <a ui-sref="multi">Multi</a>

    <ui-view></ui-view>


  </body>

  <script>
    // You can also require other files to run in this process
    require('./renderer.js');
    require('./js/loader.js'); //google charts loader.js
    require('./js/app.js');
  </script>
</html>
Run Code Online (Sandbox Code Playgroud)

以及我的应用程序的相关部分,在这里我使用window:

app.fun.drawGraph = function(){
    if(app.data.graphConfig){
        app.data.graphConfig.options.width = window.innerWidth * 0.97;
        app.data.graphConfig.options.height = window.innerHeight * 0.90;

        var chart = new google.visualization.LineChart(document.getElementById('chart'));
        chart.draw(app.data.graphConfig.data, app.data.graphConfig.options);
        // chart.draw($scope.graphData, google.charts.Line.convertOptions(options));    
    }
}

window.addEventListener('resize', function(e){ …
Run Code Online (Sandbox Code Playgroud)

electron

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

Android:捕获BLE连接失败/断开连接?

所以我能够在正常情况下连接到BLE设备.我想要做的是处理异常情况,例如当与设备的连接失败或已建立的连接丢失时(可能是从悬崖上抛出或被公共汽车撞到)

我正在使用CyPress BLE模块对此进行测试,我正在做的其中一项测试是从模块上移除电源.但是,onConnectionStateChange永远不会被调用!我所看到的只是成功的联系.它将花费数小时尝试连接,并且永远不会放弃.我会延迟取消连接尝试,但是没有办法取消BluetoothDevice上的连接尝试(我知道)!据我所知,它会继续尝试,直到电池电量耗尽.

这就是我的onConnectionStateChange现在在Gatt回调中的样子.请注意,我正在尝试捕获并记录任何类型的回调涉及任何类型的连接状态更改...除非连接成功,否则永远不会被调用.请注意,这是代码不在活动本身.它在一个由单身人士持有的物体中.(我希望保持多个活动之间的连接)

        @Override
        public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
            mGatt = gatt;
            Logy.CallPrint(LOGY_ENABLE, CLASSNAME, "Status: "+status+ " Newstate: "+newState);
            switch(status)
            {
                case BluetoothGatt.GATT_SUCCESS:
                    mReconnectAttempts = MAX_ATTEMPTS;

                    if(newState == BluetoothGatt.STATE_CONNECTED)
                    {
                        DispatchEvent(Event.Type.BT_ON_CONNECT);
                        bIsConnected = true;
                        gatt.discoverServices();
                    } else if (newState == BluetoothGatt.STATE_DISCONNECTED)
                    {
                        DispatchEvent(Event.Type.BT_ON_DISCONNECT);
                        bIsConnected = false;
                    }
                    break;
                default:
                    if(newState == BluetoothGatt.STATE_DISCONNECTED)
                    {
                        bIsConnected = false;
                        if(mReconnectAttempts > 0)
                        { // if we have attempts left, auto attempt to reconnect
                            DispatchEvent(Event.Type.BT_RECONNECTING);
                            mReconnectAttempts--;
                            gatt.connect();
                            bIsConnected = …
Run Code Online (Sandbox Code Playgroud)

android bluetooth

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

Kivy 制作自定义 TreeViewNode

我正在尝试创建一个自定义 TreeViewNode 以与 TreeView 一起使用。只想要一个旁边带有标签的图像,仅此而已。

然而,尝试创建一个自定义节点......即使在源代码中复制它的完成方式也不会产生相同的结果。

TreeViewlabel 实际上只是一个带有注释的类声明

class TreeViewLabel(Label, TreeViewNode):
'''there's just a comment here'''
Run Code Online (Sandbox Code Playgroud)

这是我用于比较的 TreeViewLabel 版本

class TreeViewImageLabel(Label, TreeViewNode):
"""oh boy this is a comment"""
Run Code Online (Sandbox Code Playgroud)

尝试创建此代码的副本并将其添加到树中会产生以下结果。我的版本是第一个标签,后面的标签是默认的TreeViewLabel 在此处输入图片说明

它全部间隔开,未对齐且巨大。没有什么比 kivy 附带的 TreeViewLabel 更整洁了。

到底他妈发生了什么?它不仅看起来与 TreeViewLabel 完全不同,而且尝试使用 size、size_hints、pos 等配置小部件也不会改变该标签相对于树的位置。

我最初的计划是让我的节点从一个带有图像和标签的盒子布局继承,但是随着自定义节点的大小调整,根据我现在所知道的情况,不可能得到任何看起来像 TreeViewNode 的东西。

找到了解决办法

所以这是修复实施后的样子: 在此处输入图片说明

对于其他想要像我一样制作带有图片和标签的 TreeViewNode 的人来说,这是使其工作的代码:

#python
class TreeViewImageLabel(BoxLayout, TreeViewNode):
    pass
Run Code Online (Sandbox Code Playgroud)

和.kv

#kivy language
<TreeViewImageLabel>:
height: max(lbl.texture_size[1] + dp(10), dp(24))

    Image:
        size: (max(lbl.texture_size[1] + dp(10), dp(24)), max(lbl.texture_size[1] + dp(10), dp(24)))
        size_hint: (.05, 1)
        id:img
        source: "smiley.png"
    Label:
        size_hint: (.9, …
Run Code Online (Sandbox Code Playgroud)

treeview kivy kivy-language

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

多个var和附加||的函数?

我在这里这个代码,遇到了一个我不太了解的风格.我对Javascript很新,但这种声明风格让我觉得与我在各种教程中所做的完全不同.

基本上我想知道的是通过这样做完成的是什么?

var Spriter;
(function (Spriter) {
    . . .
})(Spriter || (Spriter = {}));
var Spriter;
(function (Spriter) {
    . . .
})(Spriter || (Spriter = {}));
.
.
.
Run Code Online (Sandbox Code Playgroud)

为什么函数卡在括号之间?是什么(Spriter ||(Spriter = {}))附加到(函数(Spriter){}做什么?为什么'var Spriter;'写了多次?我认为多个'var Spriter'会多余.

至于这是什么,它允许你在Phaser(一个游戏引擎)中使用Spriter(一个值得在2d动画中使用骨骼的动画套件)中创建的动画.

javascript syntax

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

Android 中的 RxJava 没有 Observable.create?

我试图从这里运行这个例子

Observable<String> values = Observable.create(o -> {
    o.onNext("Hello");
    o.onCompleted();
});
Subscription subscription = values.subscribe(
    v -> System.out.println("Received: " + v),
    e -> System.out.println("Error: " + e),
    () -> System.out.println("Completed")
);
Run Code Online (Sandbox Code Playgroud)

除了我不能在 Android Studio 中使用 Lambda 之外,没有 Observable.create()。我唯一的选择是 Observable.class?

我正在使用 1.1.6 版并通过 Gradle 获取库。

android android-studio rx-java

0
推荐指数
1
解决办法
171
查看次数