我正在开发一个用于检查互联网连接的Android广播接收器.
问题是我的广播接收器被调用了两次.我希望它只在网络可用时才被调用.如果它不可用,我不希望得到通知.
这是广播接收器
public class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
final ConnectivityManager connMgr = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
final android.net.NetworkInfo wifi = connMgr
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
final android.net.NetworkInfo mobile = connMgr
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifi.isAvailable() || mobile.isAvailable()) {
// Do something
Log.d("Network Available ", "Flag No 1");
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是manifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.broadcastreceiverforinternetconnection"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<receiver android:name=".NetworkChangeReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" …Run Code Online (Sandbox Code Playgroud) java android broadcastreceiver android-networking android-wifi
我计划通过创建一个日志来自动化应用程序的测试,该日志存储应用程序的一些执行结果,后者使用一段python代码解析它并绘制图形.
该应用程序是一个WiFi指纹识别器,即它收集有关周围环境中的wifi设备的信息,如mac id,rss(收到的信号强度和等级(标准化的rss).所以为了测试这个应用程序,我必须把它带到位置和记录结果(截至现在手动).所以logcat不能达到目的.
自动化要求1.将日志存储在设备中2.通过USB访问系统中的日志文件
日志文件的格式:
Snapshot: 1
Fingerprint: 1, Rank: 0.23424, Boolean: true
Fingerprint: 2, Rank: 0.42344, Boolean: false
Fingerprint: 3, Rank: 0.23425, Boolean: true
Snapshot: 2
Fingerprint: 1, Rank: 0.75654, Boolean: false
Fingerprint: 2, Rank: 0.23456, Boolean: true
Fingerprint: 3, Rank: 0.89423, Boolean: true
................
Run Code Online (Sandbox Code Playgroud)
现在我知道持久存储基本上有3种方法(无论如何,SharedPrefs都不适合这种情况).我尝试了内部存储,但即使在设置文件模式之后,因为MODE_WORLD_READABLE无法使用Eclipse中的设备文件资源管理器读取文件.
我仍然担心使用外部存储来存储日志.任何有关如何在设备的USB中写入文件的教程肯定会有所帮助.
我想构建要存储的数据,以便使用SQLite进行存储.但这在数据之间建立了许多不必要的关系(国内和国内)并使其变得复杂.如果没有办法,那么这里就是龙.
基本上我想写一个文件(我想更容易)在设备中,后者在我的系统中通过usb连接到它来读取它.如何做任何帮助将非常感激.
我正在开发一个Android应用程序.我注意到一个非常罕见的错误,导致我的应用程序崩溃.不幸的是,我的智能手机在发生时从未连接到我的电脑.那么,有没有办法在我的应用程序启动时自动将所有日志(尤其是抛出的runtimeexceptions)保存到文件中,以便我可以将此文件复制到我的电脑并分析错误?应用程序的每次启动都应该覆盖该文件,以便它只包含上次运行的日志...我该如何实现?
问候