小编gan*_*esh的帖子

android模拟器中的Internet连接始终显示连接状态

我试过在很多方面检查我的android模拟器中的Internet连接

  ConnectivityManager conMgr = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);  

   NetworkInfo info= conMgr.getActiveNetworkInfo();  

         if(info != null || info.isConnected()) {  
              Log.v("NetworkInfo","Connected State");  
         }  
        else{  
            Log.v("NetworkInfo","Not Connected state");  
            Log.v("Reason",info.getReason());  
        } 
Run Code Online (Sandbox Code Playgroud)

即使我在我的系统中禁用Internet连接,我的代码似乎显示连接状态,所以我猜这可能会工作

 if ( conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED
        ||  conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED  ) {

      Log.v("Congr","Connection Present");

    }
    else if ( conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED
        ||  conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED) {

      Log.v("conMgr"," No Connection");

    } 
Run Code Online (Sandbox Code Playgroud)

但即使我断开互联网电缆,上面的代码也会显示"连接存在"..请帮助找到一个正确的方法来执行此操作.我的清单文件中有ACCESS_NETWORK_STATE和INTERNET权限

android internet-connection

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

如何在启动应用程序时避免黑屏

当我最初启动我的应用程序时,我得到一个黑屏,在我的主要活动开始之前停留几秒钟.在iphone的情况下,显示名称默认的图像.我不确定如何在Android中做同样的事情.我试着如下徒劳:

         <activity android:name=".Index"
              android:label="@string/app_name"
              android:screenOrientation="portrait"
              android:theme="@drawable/defaultimage">
            <intent-filter>
              <action android:name="android.intent.action.MAIN" />
              <category android:name="android.intent.category.LAUNCHER" />
          </intent-filter>
        </activity>  
Run Code Online (Sandbox Code Playgroud)

android themes

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

这比Android应用内结算库与应用内结算API有更好的优势


我遇到了应用内结算库(使用BillingClient)和应用内结算API(使用IInAppBillingService)都用来管理订阅,我的问题是必须在什么情况下使用.

我正在使用应用内结算API测试并检查应用的启动屏幕上的订阅状态.我的逻辑很简单,使用getPurchases()方法获取购买状态.如果getPurchases()返回空,我认为是"未购买状态"否则"购买国".如果符合以下标准,这将解决吗?

1.延期结算
2.购买到期

如果定期付款失败(例如,因为客户的信用卡已失效),则订阅不会续订.getPurchases()方法不会返回失败或过期的订阅.

这是什么意思

 Bundle ownedSubscripedItems = mService.getPurchases(3, getPackageName(), "subs", null);

 ArrayList<String> purchaseDataList =
                            ownedSubscripedItems.getStringArrayList("INAPP_PURCHASE_DATA_LIST");
Run Code Online (Sandbox Code Playgroud)

对于过期的订阅,purchaseDataList数组是否为空?

对递延账单的回应是什么?.如何检查该用户是否喜欢推迟计费.他们的回复是否与普通用户相同?

android in-app-purchase

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

不会因404错误而调用Android WebViewClient onReceivedError


在列表视图中我有一个webview应该从服务器加载图像文件,当没有图像存在时,我需要一个虚拟图像.我试过

holder.image.setWebViewClient(new WebViewClient()
{
                  @Override
                public void onReceivedError( WebView view, int errorCode, String description, String failingUrl) 
                {

                    System.out.println("description error" + description);
                    view.setVisibility( View.GONE );

                }

                @Override
                public void onPageFinished(WebView view, String url) {

                    view.setVisibility( View.VISIBLE );


                }


   }); 
Run Code Online (Sandbox Code Playgroud)

我在FrameLayout中有一个虚拟图像的webview,在每个图像url加载后调用onPageFinished监听器,但是没有为产生404错误的url调用onReceivedError.任何猜测如何做.

android webview webviewclient

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

无法为TYPE_SYSTEM_OVERLAY获取Touch事件

我喜欢开发一个类似于Swapps的应用程序.我试图在任何屏幕上显示一个按钮,这应该仅在刷卡动作时出现.我尝试使用下面的代码

    WindowManager.LayoutParams params = new WindowManager.LayoutParams();
    params.type =WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;
    params.flags = WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
    params.format =PixelFormat.TRANSLUCENT; 
    params.height = WindowManager.LayoutParams.WRAP_CONTENT;
    params.width = WindowManager.LayoutParams.WRAP_CONTENT;
    parentlay = new LinearLayout(this);
    mybt = new Button(getApplicationContext());
    bt.setText("Click to Go");

    parentlay.setBackgroundColor(Color.TRANSPARENT);
    parentlay.setHapticFeedbackEnabled(true);
    parentlay.setOnTouchListener(new OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
                // event.getAction() prints 4 and not able to get up or down event
           }
       });
   windowmanager.addView(parentlay, params);
Run Code Online (Sandbox Code Playgroud)

当用户通过捕获该事件并从而从左向右滑动时,我试图显示该按钮

    parentlay.addView(bt);
Run Code Online (Sandbox Code Playgroud)

用户从右向左滑动时删除视图

    parentlay.removeView(bt);
Run Code Online (Sandbox Code Playgroud)

如上所述,除非我将类型更改为TYPE_SYSTEM_ALERT,否则我无法获取运动事件,但是,如果冻结所有屏幕并且无法单击后退或主页按钮,是否有任何其他方法可以执行此操作.

我刚试过以下修改

    params.type =WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
    params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
    |WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH
   |WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;

    params.height = WindowManager.LayoutParams.MATCH_PARENT;
    params.width = …
Run Code Online (Sandbox Code Playgroud)

android overlay background android-gesture

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

setOnItemClickListener没有响应Custom ListView

我为listview编写了一个自定义适配器,但是当我尝试为列表项实现click事件时,我发现它没有响应,如果有人建议我解决方案,我会很高兴.

public class TourList extends ListActivity {
....
setContentView(R.layout.tourlist);
.....





getListView().setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
                     //i couldn't reach here
             Log.v(TAG,"did u get me");
        }
      }); 
adap = new MyAdapter(TourList.this,mylist);
getListView().setAdapter(adap);
Run Code Online (Sandbox Code Playgroud)

我的自定义适配器是

private class MyAdapter extends BaseAdapter {

            ArrayList<HashMap<String,String>> elements;
            Context ctx;

            public MyAdapter(Context context, ArrayList<HashMap<String,String>> mylist) {
                  this.elements=mylist;
                  this.ctx=context;
             }

            public boolean isEnabled(int position){
               return true;
                      }

            @Override
            public int getCount() {
                return elements.size();
                }
            @Override
            public Object getItem(int position) {
                return …
Run Code Online (Sandbox Code Playgroud)

android listview adapter

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

有没有办法检索用户是否已取消Android In App订阅

我正在使用谷歌应用内结算v-3来实施订阅.

我的订阅有一周的跟踪期,UI显示"Avail A Week Free"视图.
如果用户因任何原因订阅和取消,我需要显示"UpGrade"视图.

据我搜索,我了解到如果用户在活动订阅期间取消订阅,INAPP_PURCHASE_DATA_LIST autoRenewing标志将返回false.在订阅期结束后,getPurchase()可能返回空.

在这种情况下,我如何知道要显示哪个UI,因此当订阅到期和用户未订阅时,getPurchase()将为两者返回空.

android in-app-subscription

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

如何创建Android Google Play的网格视图,如Widget,动态加载不同大小的图像

在此输入图像描述

在此输入图像描述


我已经附上了两个应用程序图像,它们具有网格视图,如具有不同图像高度和宽度的小部件,动态加载,我需要创建相同类型的UI,如果有人引导我开始,我会很高兴.

android-ui android-layout google-play

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

如何以编程方式更改Android ListView的布局边距

我在xml中定义了一个List View,如下所示

     <ListView android:id="@+id/mylist" 
           android:layout_width="fill_parent" 
           android:layout_height="wrap_content"
            android:cacheColorHint="#00000000"
           android:layout_weight="1"
           android:layout_marginTop="95dip"/>
Run Code Online (Sandbox Code Playgroud)

我需要在我的程序中重新定义布局余量,我可以如何实现这一点

android listview

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

无法通过从Android浏览器调用URL来启动应用程序

stackoverflow中有很多答案显示了如何从Web浏览器中获取应用程序,但我不确定我的代码出了什么问题,似乎从来没有做过预期的.我试图通过任何其他应用程序(如Web浏览器)的URL启动我的应用程序,最初我的清单文件看起来像这样

      <activity android:name=".Main">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
              <data android:scheme="http" android:host="ebay.com" />
              <action android:name="android.intent.action.VIEW" />
              <category android:name="android.intent.category.DEFAULT" />
              <category android:name="android.intent.category.BROWSABLE" />
        </intent-filter>
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中输入http://ebay.com从未启动我的应用程序时.显然,浏览器如何了解我的应用程序?,然后我尝试了另一种方式并添加了另一个名为MyActivity的Activity并更改了清单文件如

<activity android:name=".Main">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

    </activity>     

 <activity android:name=".MyActivity">
      <intent-filter>
         <data android:scheme="http"  android:host="ebay.com" />
         <action android:name="android.intent.action.VIEW" />
         <category android:name="android.intent.category.DEFAULT" />
         <category android:name="android.intent.category.BROWSABLE" />
      </intent-filter>
   </activity>
Run Code Online (Sandbox Code Playgroud)

并尝试在我的主要活动
startActivity(新的Intent(Intent.ACTION_VIEW,Uri.parse("http://mycityway.com")));
从而产生预期的结果.我也可以使用这种方法启动另一个应用程序Activity.
但是这里的大多数答案都表明后者是可能的.我正在做的错误是什么,我无法从浏览器启动我的应用程序.请指导我.

browser url android android-intent

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