小编Mr_*_*s_D的帖子

如何通知wifi网络状态变化?

我正在编写一个通过wifi连接到telnet服务器的应用程序.我有一个管理套接字连接的服务.一切正常,但是当手机休眠时,它会断开wifi无线电,导致套接字连接中断(并抛出SocketException).

我觉得我应该能够设置一个广播接收器,当wifi网络连接丢失时调用onResume()方法,这将允许我优雅地关闭套接字,并在网络立即重新打开它重新连接.但我在文档或搜索中找不到类似的东西.

服务代码在这里,如果你需要它,感谢您的帮助,我真的很感激!

package com.wingedvictorydesign.LightfactoryRemote;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketException;
import java.net.SocketTimeoutException;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.RemoteCallbackList;
import android.os.RemoteException;
import android.text.Editable;
import android.util.Log;
import android.widget.Toast;
import android.os.Debug;

/**
 * @author Max
 */
public class TelnetService extends Service {

    private final int DISCONNECTED = 0;
    private final int CONNECTED = 1;
    // place notifications in the notification bar
    NotificationManager mNM;
    protected …
Run Code Online (Sandbox Code Playgroud)

android

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

如何在Android中定期查找gps位置

我正在编写一个应用程序,每十分钟就会记录一个新的gps位置.

我已经尝试了位置轮询器,将位置监听器放在服务中,并将位置监听器放在一个活动中,但这些方法都不适用于我.

我需要一种方法在我开始记录我的位置数据前2分钟打开gps位置监听器(为gps提供足够的时间来查找位置或确定没有信号).我一直在使用在我调用updatelocation类之前2分钟调用gpsActivity的警报.然后我的updatelocation类接受gpsActivity的locationmanager并从中提取一个位置.

从理论上说这应该可以工作但是当我把它放在我的手机上时,我总是得到不好的数据(准确度太低或根本没有信号)

如果有人可以帮助我,我将非常感激.

谢谢

报警在更新位置前2分钟呼叫此课程

public class GPSActivity extends Activity {

    public static LocationListener loc_listener = null;
    public static LocationManager locationManager = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
        getGPS();
    }

    public static void getGPS() {
        if (loc_listener == null) {
            loc_listener = new LocationListener() {

                @Override
                public void onStatusChanged(String provider, int status,
                        Bundle extras) {}

                @Override
                public void onProviderEnabled(String provider) {}

                @Override
                public void onProviderDisabled(String provider) {}

                @Override
                public void onLocationChanged(Location location) …
Run Code Online (Sandbox Code Playgroud)

gps android

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

我怎样才能得到转发的所有推文文本并扩展140个字符?

我已经开始学习Twitter4jAPI,并从Twitter获得所有凭据和令牌以使用它.我使用的是twitter4j API 2.2.5版.

我可以timeline使用一个简单的java程序并打印它console.我可以使用下面的代码获取我完成的所有推文和转发.

List<Status> statuses;
statuses = twitter.getUserTimeline();
for (Status status1 : statuses){
   System.out.println(status1.getText());
}
Run Code Online (Sandbox Code Playgroud)

问题是我转发了一条由140个字符组成的推文,因此在转发后它变成超过140个字符.它不是在控制台中打印整个推文,而是...在最后打印.

 RT @xxxxxx: The ************************************ , but the pai.....
Run Code Online (Sandbox Code Playgroud)

我怎么能收到整条推文?

java twitter twitter4j tweets

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

ConnectivityManager.CONNECTIVITY_ACTION从API> = 14中取消网络连接?

我需要从哪个设备断开网络.

现在我使用:

NetworkInfo ni =intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
Run Code Online (Sandbox Code Playgroud)

并检查:

ni.isConnected()
Run Code Online (Sandbox Code Playgroud)

如果返回false ni - 是设备断开连接的网络.

ConnectivityManager.EXTRA_NETWORK_INFO弃用的API 14.谷歌表示,使用getActiveNetworkInfo()来获取网络信息.但是getActiveNetworkInfo()总是返回设备现在连接的网络(isConnected()必须返回true)!

如何在不使用ConnectivityManager.EXTRA_NETWORK_INFO的情况下获取设备断开连接的网络的网络信息?

Sertorio Noronha,当我使用getActiveNetworkInfo()时,我只获得了我现在连接的网络!但我需要从我断开连接的网络.

ConnectivityManager cm = (ConnectivityManager)
    context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo n1 = cm.getActiveNetworkInfo();
Log.d("tets", String.format("%s: %s", n1.getTypeName(), n1.isConnected()));
Run Code Online (Sandbox Code Playgroud)

当我从WI-FI断开并连接到日志中的3G时:

mobile: true
mobile: true
Run Code Online (Sandbox Code Playgroud)

当我从3G断开并连接到日志中的WI-FI时:

WIFI: true
WIFI: true
WIFI: true
Run Code Online (Sandbox Code Playgroud)

getActiveNetworkInfo仅返回连接到now的网络,但不返回断开连接的网络.

如果我在日志中使用弃用的intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO),我会看到:

当我断开WI-FI并连接到3G时:

WIFI: false
mobile: true
Run Code Online (Sandbox Code Playgroud)

当我断开与3G的连接并连接到WI-FI时:

mobile: false
WIFI: true
Run Code Online (Sandbox Code Playgroud)

但我不想使用弃用的api.如何使用现代api来获取我断开连接的网络?

networking android connectivity

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

用groupby替换值意味着

我有一个DataFrame,其列包含一些带有各种负值的错误数据.我想将值<0替换为它们所在组的平均值.

对于作为NA的缺失值,我会这样做:

data = df.groupby(['GroupID']).column
data.transform(lambda x: x.fillna(x.mean()))
Run Code Online (Sandbox Code Playgroud)

但是如何在这样的条件下做这个操作x < 0呢?

谢谢!

python pandas pandas-groupby

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

git filter-branch - 放弃对一系列提交中的一组文件的更改

假设我有一个分支dev,我想放弃在分支提交范围内对一组文件所做的所有更改,dev因为它偏离了master.如果此范围内的提交仅触及我喜欢的那些文件,则会将其修剪掉.我得到的最接近的是:

git checkout dev
git filter-branch --force --tree-filter 'git checkout master -- \
a/b/c.png \
...
' --prune-empty -- master-dev-older-ancestor..HEAD
Run Code Online (Sandbox Code Playgroud)

但这有这些缺点

  1. 如果该文件已在master中删除,它将失败,error: pathspec 'a/b/c.png' did not match any file(s) known to git.我可能会决定git checkout master-dev-older-ancestor但是,
  2. 这个文件可能不存在于master-dev-older-ancestor中,并且从master返回到dev以后的某个位置
  3. 毕竟我可能想要放弃一些在master中无处可见的文件的更改

从根本的一点是,我不想让Git签文件的特定版本-我想告诉git的过滤所有提交的范围 master-dev-older-ancestor..HEAD有在所有更改任意文件集(目前在主任何地方或没有)丢弃.

那我怎么告诉git?

git git-filter-branch

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

Eclipse Link to Hibernate迁移错误与mappedBy

我正在尝试将 MySql 数据库迁移到 Postgresql。我正在使用 JPA,并使用 Eclipse Link 作为 MySQL 数据库,但我正在切换到 Hibernate 作为 Postgresql 数据库。

以下 JPA 注释可与 EclipseLink 配合使用:

UserBean.java:

@OneToMany(mappedBy = "sender", cascade = CascadeType.ALL)
@JoinTable(name = "MESSAGES_SENT")
private List<MessageBean> messagesSent;

@OneToMany(mappedBy = "receiver", cascade = CascadeType.ALL)
@JoinTable(name = "MESSAGES_RECEIVED")
private List<MessageBean> messagesReceived;
Run Code Online (Sandbox Code Playgroud)

MessageBean.java:

@ManyToOne
private UserBean sender;

@ManyToOne
private UserBean receiver;
Run Code Online (Sandbox Code Playgroud)

使用 Hibernate,我收到以下错误消息:

org.hibernate.AnnotationException:标记为mappedBy的关联不得定义数据库映射,如@JoinTable或@JoinColumn

我怎样才能让它与 Hibernate 一起工作?重要的是数据库架构不要更改,因为我想将 MySql 数据库转储到 Postgresql 数据库中,而不修改任何表或列名。

干杯,
多米尼克

mysql postgresql hibernate jpa eclipselink

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

对python列表的子集进行排序,使其具有与其他列表中相同的相对顺序

所以有一个列表说b = [b1, b2, b3]我希望能够以a这样的方式对列表进行排序,即所有bi存在的列表具有与之a相同的相对顺序b- 仅剩下其余a的元素.所以

a = [ b1, x, b3, y, b2] -> [ b1, x, b2, y, b3]
a = [ b1, x, b2, y, b3] -> no change
a = [ b1, x, y, b2]     -> no change
a = [ b3, x, b1, y, b2] -> [ b1, x, b2, y, b3]
Run Code Online (Sandbox Code Playgroud)

b当然可以是元组或任何其他有序结构.我想出了什么

bslots = dict((x, a.index(x)) for x in a if x …
Run Code Online (Sandbox Code Playgroud)

python sorting algorithm list python-2.7

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

Tensorflow数据集API中的内存管理

我的训练数据集太大而无法容纳到内存中,因此我的代码一次只能从磁盘读取1,000条记录.现在我想使用Tensorflow的新数据集API.数据集API是否允许我指定要保留在内存中的记录数,或者Tensorflow是否自动管理内存以便我不必?

tensorflow tensorflow-datasets

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

list[str] 是可迭代的吗?

Python 3.10 不这么认为:

Python 3.10.6 | packaged by conda-forge | (main, Aug 22 2022, 20:38:29) [Clang 13.0.1 ] \
    on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from typing import Iterable
>>> isinstance(list[str], Iterable)
False
>>> list(list[str])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'types.GenericAlias' object is not iterable
Run Code Online (Sandbox Code Playgroud)

Python 3.11 认为它是:

Python 3.11.0 | packaged by conda-forge | (main, Jan 15 2023, 05:44:48) [Clang 14.0.6 ] \
    on darwin
Type …
Run Code Online (Sandbox Code Playgroud)

python python-internals python-typing

8
推荐指数
2
解决办法
993
查看次数