相关疑难解决方法(0)

android.net.wifi.WIFI_STATE_CHANGED没有播出

在我的应用程序中,如果连接了网络更改,我需要重新启动服务.目前它只能以一种方式工作(wifi到移动数据),但它不能以其他方式工作(移动数据到wifi.)为什么会这样?是因为我没有进入android.net.wifi.WIFI_STATE_CHANGED我的广播接收器或者可能是错位的许可?

谢谢你的帮助.

代码:接收器的清单条目:

<receiver
    android:name="LiveForever"
    android:label="NetworkChangeReceiver" >
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
        <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
    </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

接收器本身:

public static final int TYPE_WIFI = 1;
public static final int TYPE_MOBILE = 2;
public static final int TYPE_NOT_CONNECTED = 0;
public static final String PREFS_NAME = "cakecloudpreferences";

@Override
public void onReceive(Context context, Intent intent) {
    SharedPreferences settings = context.getSharedPreferences(PREFS_NAME, 0);
    if (getConnectivityStatus(context)!=0&&!settings.getBoolean("osmframerunning",false)) {
        context.stopService(new Intent(context, OSMFrame.class));
        settings.edit().putBoolean("osmframerunning",false).commit();
        Intent frameintent = new Intent(context,OSMFrame.class);
        frameintent.putExtra("username",settings.getString("usr",""));
        frameintent.putExtra("password",settings.getString("pswd",""));
        frameintent.putExtra("uid",settings.getString("uid",""));
        context.startService(frameintent);
        Log.i("CCLiveForever","LiveForever Triggered, OSMFrame restarted."); …
Run Code Online (Sandbox Code Playgroud)

networking android broadcastreceiver

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

如何在没有Activity/Service的情况下创建BroadcastReceiver?

我正在尝试创建没有活动/服务的BroadcastReceiver.虽然当我删除活动时代码中存在活动时注册和执行代码没有问题,但它失败了.

我使用清单(!)注册BroadcastReceiver但是当从项目中删除活动时它没有被调用.

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <receiver android:name="com.ge.test.InstallsListener" >
        <intent-filter>
            <data android:scheme="package" />
            <action android:name="android.intent.action.PACKAGE_ADDED" android:priority="100"/>                
        </intent-filter>
    </receiver>
</application>
Run Code Online (Sandbox Code Playgroud)

谢谢.

android android-activity android-broadcast

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