相关疑难解决方法(0)

检测Android上是否有可用的Internet连接

我需要检测Android设备是否已连接到Internet.

NetworkInfo类提供了一个非静态方法isAvailable()听起来很完美.

问题是:

NetworkInfo ni = new NetworkInfo();
if (!ni.isAvailable()) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

抛出此错误:

The constructor NetworkInfo is not visible.
Run Code Online (Sandbox Code Playgroud)

安全的赌注是有另一个类返回一个NetworkInfo对象.但我不知道哪个.

  1. 如何让上面的代码段工作?
  2. 我怎么能找到自己在在线文档中需要的信息?
  3. 你能为这种类型的检测提出更好的方法吗?

android internet-connection android-internet

667
推荐指数
6
解决办法
52万
查看次数

Android检查互联网连接

我想创建一个使用互联网的应用程序,我正在尝试创建一个检查连接是否可用的功能,如果不可用,请转到具有重试按钮和解释的活动.

附件是我的代码到目前为止,但我收到了错误 Syntax error, insert "}" to complete MethodBody.

现在我一直把这些放在试图让它工作,但到目前为止没有运气...任何帮助将不胜感激.

public class TheEvoStikLeagueActivity extends Activity {
    private final int SPLASH_DISPLAY_LENGHT = 3000;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);

        private boolean checkInternetConnection() {
            ConnectivityManager conMgr = (ConnectivityManager) getSystemService (Context.CONNECTIVITY_SERVICE);
            // ARE WE CONNECTED TO THE NET
            if (conMgr.getActiveNetworkInfo() != null
                    && conMgr.getActiveNetworkInfo().isAvailable()
                    && conMgr.getActiveNetworkInfo().isConnected()) {

                return true;

                /* New Handler to start the Menu-Activity
                 * and close this Splash-Screen after …
Run Code Online (Sandbox Code Playgroud)

networking android android-networking

204
推荐指数
11
解决办法
31万
查看次数

以编程方式注册广播接收器

我想知道以编程方式注册广播接收器的最佳实践/方法是什么.我想根据用户的选择注册特定的接收器.

由于注册是通过清单文件完成的,我想知道是否有一种正确的方法可以在代码中实现这一点.

android broadcastreceiver

145
推荐指数
4
解决办法
20万
查看次数

如何显示Google地图等启用位置对话框?

我使用最新版本的Google Play服务(7.0)并按照其指南中给出的步骤操作,并启用了如下所示的位置对话框,其中包含"从不"按钮.我的应用程序强制要求位置,所以我不想向用户显示永远不会,因为一旦用户点击"从不",我就无法再获取位置或请求位置.

谷歌地图只有是和没有按钮没有从不按钮,任何想法如何实现相同?

我的应用程序的图像 在此输入图像描述

谷歌地图的形象 在此输入图像描述

android google-play-services

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

检查INTENT互联网连接

Intent ACTION_XXX当有Internet连接时,是否有Android 通知我?

我想实例化BroadcastReceiver当用户启用Internet连接时通知我的应用程序(通过wifi,通过GSM等)

谁能帮助我?

android broadcastreceiver android-intent

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

Android:互联网连接改变监听器

我已经有了这个代码来监听连接变化 -

public class NetworkStateReceiver extends BroadcastReceiver
{
  public void onReceive(Context context, Intent intent)
  {
    Log.d("app","Network connectivity change");

    if(intent.getExtras() != null)
    {
      NetworkInfo ni = (NetworkInfo) intent.getExtras().get(ConnectivityManager.EXTRA_NETWORK_INFO);
      if(ni != null && ni.getState() == NetworkInfo.State.CONNECTED)
      {
        Log.i("app", "Network " + ni.getTypeName() + " connected");
      }
    }

    if(intent.getExtras().getBoolean(ConnectivityManager.EXTRA_NO_CONNECTIVITY, Boolean.FALSE))
    {
      Log.d("app", "There's no network connectivity");
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我使用此代码检查Internet连接 - Internet Check

但问题是,如果网络在没有任何连接变化的情况下突然失去互联网连接,则此代码无用.有没有办法为Internet连接更改创建Broadcast Receiver侦听?我有一个Web应用程序,突然的Internet连接更改可能会导致问题.

java android connectivity

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

Activity中的Android BroadcastReceiver

我只是尝试这个小样本项目,它所做的一切:活动一有一个发送广播的按钮.活动二在收到时显示祝酒词.下面是代码,从未收到广播.我做错了什么?

发送广播

public class SendBroadcast extends Activity {

    public static String BROADCAST_ACTION = "com.unitedcoders.android.broadcasttest.SHOWTOAST";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    public void sendBroadcast(View v){
        Intent broadcast = new Intent();
        broadcast.setAction(BROADCAST_ACTION);
        sendBroadcast(broadcast);
    }
}
Run Code Online (Sandbox Code Playgroud)

接收它

public class ToastDisplay extends Activity {

    private BroadcastReceiver receiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            Toast.makeText(getApplicationContext(), "received", Toast.LENGTH_SHORT);
        }
    };

    @Override
    protected void onResume() {
        IntentFilter filter = …
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver

46
推荐指数
3
解决办法
12万
查看次数

Broadcastreceiver用于检测网络是否已连接

我正试图获得用户连接到网络的那一刻,然后我认为这BroadcastReceiver是一个很好的方法......我想做的事情是,当用户连接到网络时,知道该网络是否已连接到Internet .

主要的是知道WiFi是否需要Browse Log in示例:Handling Network Sign-On文档

到目前为止我尝试过什么?

我把我BroadcastReceiver变成了这个

if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
NetworkInfo networkInfo = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
if (networkInfo != null && networkInfo.getDetailedState() == NetworkInfo.DetailedState.CONNECTED) {
    Log.d("Network", "Internet YAY");
} else if (networkInfo != null && networkInfo.getDetailedState() == NetworkInfo.DetailedState.DISCONNECTED) {
    if (isNetworkOnline()) {
        Log.d(TAG, String.valueOf(tikis));
        NetTask TeInternet = new NetTask();
        TeInternet.execute("https://www.google.com");


    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,当我尝试连接到WiFi没有Internet Connection输入的是这样的:

D/Network? Internet YAY
D/Network? Internet YAY
D/Network? Internet YAY
D/RequiresLoginBroadcast? 1 //this occurs sometimes …
Run Code Online (Sandbox Code Playgroud)

android

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

不幸的是,在检查网络时app正在停止

我使用以下代码通过我的应用程序检查互联网连接.

public class ConnectionChangeReceiver extends BroadcastReceiver
{
  @Override
  public void onReceive( Context context, Intent intent )
  {
    ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService( Context.CONNECTIVITY_SERVICE );
    NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
    NetworkInfo mobNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE );

    if (activeNetInfo != null)
    {
        Toast.makeText( context, "Active Network Type : " + 
                       activeNetInfo.getTypeName(), Toast.LENGTH_SHORT ).show();
    }
    if(mobNetInfo != null)
    {
        Toast.makeText( context, "Mobile Network Type : " + 
                          mobNetInfo.getTypeName(), Toast.LENGTH_SHORT ).show();
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我已在清单文件中定义了必需的权限.

每当我试图断开/连接使用F8键,我会收到网络"不幸的是APP已经停止",而我没有得到任何打印logcat.

我能知道我在做什么错吗?

android connectivity broadcastreceiver

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

Android Crashlytics - 限制网络访问

我一直在努力解决在某些条件下限制Crashlytics网络使用的问题.例如 - 漫游,计量网络等等.

根据SDK文档,我发现只有两个选项可以解决这个问题:

  • 只需不初始化Crashlytics即可在运行时"退出"

  • 发送崩溃报告之前内置用户同意对话框

这个API非常有限,因为:

  • 不初始化Crashlytics不仅会阻止网络访问,还会阻止任何机会Crashlytics在本地保存崩溃报告,以便最终发送事件.更不用说除了粗暴地重写Thread.setUncaughtExceptionHandler之外没有好的方法可以在运行时选择退出

  • 如果在后台发生崩溃,则同意对话框对用户没有任何意义.

我的问题基本上是:我错过了什么?有没有办法限制Crashlytics网络访问?

我的动机来自需要防止我的应用程序使用网络带宽可能会在某些条件下花费给用户的钱,尽管"蜂窝网络"或"使用漫游时使用数据"设备设置已启用.

android crash-reports crashlytics

19
推荐指数
4
解决办法
605
查看次数