小编flx*_*flx的帖子

Android ContentProvider与ORMLite

我正在使用内容提供程序来管理我的应用程序数据,这些数据不与其他应用程序共享.但是,有一些样板代码,例如将光标转换为域对象.ORMLite提供了一种更优雅的方式,可以直接将数据库条目映射到域对象.所以我想用ORMlite替换内容提供者.但我有些担心:

  1. 内容提供程序在多线程环境中正常工作.我不知道ORMlite是否是线程安全的.
  2. 内容提供者可以广播数据库更改.我不知道ORMLite是否有这种支持.
  3. Android提供程序的一些实用程序,如AsynQueryHandler,CursorLoader,以异步方式查询数据库.如果我使用ORMLite,我必须显式创建一个线程或AsyncTask来进行查询.

我是否应该用ORMLite替换内容提供者?

android ormlite android-contentprovider

9
推荐指数
1
解决办法
5906
查看次数

Android Proguard - dontobfuscate不会禁用混淆

关于android proguard混淆的问题.出于某种原因,当使用ant生成apk时,我希望proguard缩小大小(删除未使用的类)但没有名称混淆.在proguard.cfg,我补充说:

-dontobfuscate
Run Code Online (Sandbox Code Playgroud)

所有其他人proguard.cfg都是-dontwarn-keep class.但在反编译生成的apk(dex2jar)后,我发现许多名称仍然被混淆.为什么会这样?

谢谢

obfuscation android proguard

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

imageview android中的图像大小

我在listView中有一个imageView.设置如下:main.xml

<?xml version="1.0" encoding="utf-8"?>
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

  <ListView
    android:id="@+id/listView2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >
  </ListView>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

image.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:orientation="vertical" >

  <ImageView
    android:id="@+id/imageView1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"    
    android:scaleType="center"    
    android:src="@drawable/ic_launcher" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

这很好用,用http请求从url填充许多图像.但我的图像大小有问题.无论分辨率或大小如何,我希望它们填满屏幕.试过不同的布局高度,宽度和scaleType但不能让它正常工作.

第一个图像是它现在的样子,第二个图像是我想要它的样子.

编辑:尝试使用scaleType ="fitXY",这给了我100%的宽度,但在较长的图像上是一个坏的高度.

这就是它现在的样子 这就是我想要的样子

android android-layout android-imageview

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

以编程方式重启无线电

偶尔,我的安卓手机的收音机因为一些与网络有关的问题而无声地死机.在Nexus 4上,它显示空三角形,好像在这个区域没有可用的服务.在其他手机上它甚至没有这样做.看起来信号很好.

无论如何,在无线电无声地死亡之后,没有电话/短信/数据在任何方向上通过.我从系统获得的唯一提示是android.net.conn.CONNECTIVITY_CHANGE当信号死亡且未连接wifi时触发的广播.

唯一能解决问题的是重启手机.

最后我的问题:

有人知道如何通过代码完全重启收音机吗?

我的意思是,它是在单独的CPU上运行的单独映像.必须有一种方法可以重新启动它而无需重新启动手机.也许有一些东西,我可以进入Android ROM.我在这里运行CM,并乐意修补它(再次).

我尝试通过按下*#*#4636#*#*dailer并停止收音机并再次启动来启动系统应用程序来修复它.但它根本没有帮助.

我最近创建了一个应用程序,每次连接更改时都会检查无线电.它显示了一个简单的通知告诉我,我应该重新启动手机.[1]

转载的问题:

  • LG Nexus 4
  • 三星ACE 2
  • 多个Apple iPhone 4*

未转载的问题:

  • Apple iPhone 5

所有手机都在Dialog.lk网络中运行.

[1] https://github.com/felixb/network-checker

modem android reboot cellular-network

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

如何只显示一次登录然后直接在android中启动应用程序

我只在一次登录时遇到麻烦...我的目标是第一个用户获得登录屏幕..如果他是新用户,他将注册然后登录...从那时用户启动应用程序后,他应该直接重定向到跳过登录页面的主要活动..请朋友们帮我解决这个问题..请给我发贴任何教程或任何代码......请告诉我如何在清单文件中修改...

我在登录活动中使用这样的,但我没有完成我的任务.

SharedPreferences pref;
SharedPreferences.Editor editor;
pref = getSharedPreferences("testapp", MODE_PRIVATE);
editor = pref.edit();
editor.putString("register","true");
editor.commit();
String getStatus=pref.getString("register", "nil");
if(getStatus.equals("true"))
   // redirect to next activity
else
   // show registration page again
Run Code Online (Sandbox Code Playgroud)

android sharedpreferences

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

安全API密钥Android

我目前正在开发一个使用Google Blogger API的项目.前天(星期六)有人攻击我的应用程序并获取API密钥,我访问帖子的每日限制是100,000(100K/24小时).我在星期六达到了限制(我怀疑那些是使用我的API密钥进行的欺诈点击,因为我只有4K客户使用该应用程序,我在客户端代码中嵌入了API密钥).

之后,在五分钟内再次达到API限制(24小时后)5K.所以我删除了API密钥并生成了一个新密钥.

我的问题是如何在客户端代码中保护我的新API密钥,以便攻击者无法访问API密钥或至少某些方法间接使用客户端代码中的API密钥.

security api android google-api secure-coding

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

根据屏幕宽度设置视图的宽度

我试图让视图的宽度基于屏幕的宽度。根据 0 到 100 之间的值,宽度将是屏幕宽度的百分比。以下是我获取 DP 屏幕宽度的方法:

Display display = ((Activity)context).getWindowManager().getDefaultDisplay();
DisplayMetrics outMetrics = new DisplayMetrics ();
display.getMetrics(outMetrics);
float density  = context.getResources().getDisplayMetrics().density;
float screenWidthDP = outMetrics.widthPixels / density;
Run Code Online (Sandbox Code Playgroud)

这会为我的设备返回 360dp,这是正确的。然后我用它来设置视图的宽度,其中 timeCountNewRange() 返回 0 - 100 之间的值:

int timeCountNewRange = getNewRangeTimeCount(timeCount, min, max);
int widthDP = (int) (((double)timeCountNewRange / 100.0) * screenWidthDP);

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(widthDP, 15);
params.setMargins(5, 0, 0, 0);
appHolder.timeBar.setLayoutParams(params);
Run Code Online (Sandbox Code Playgroud)

由于某种原因,当“timeCountNewRange”值为 100 时,它仅占屏幕宽度的 60% 左右,其他所有内容也更短。如果更换

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(widthDP, 15);
Run Code Online (Sandbox Code Playgroud)

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(360, 15); …
Run Code Online (Sandbox Code Playgroud)

android width android-layout android-view

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

CursorAdapter如何在GridView中运行android

我在gridview上使用游标适配器时遇到问题,我使用光标从媒体商店加载照片.我意识到我的newView和bindView被完全调用了.我的意思是假设我有500张照片,newView也会被调用相同的次数.

我做错了什么吗?我以为它只会在屏幕上看到细胞时调用..

    public int taskA = 0;

public GalleryCursorAdapter(Context context, Cursor c) {
    super(context, c);
    // TODO Auto-generated constructor stub
}

@Override
public void bindView(View view, Context context, Cursor cursor) {
    // TODO Auto-generated method stub
    int index = cursor.getColumnIndex(MediaStore.Images.Media._ID);
    long id = cursor.getLong(index);

    Bundle idBundle = new Bundle();
    idBundle.putLong("id", id);

    Message msg = new Message();
    msg.setData(idBundle);

    ImageHandler imgHandler = new ImageHandler(context, (ImageView) view);
    imgHandler.sendMessage(msg);

    view.setTag(imgHandler);
    Log.w("task s",  " count");
}

@SuppressLint({ "NewApi", "NewApi" })
@Override
public View newView(Context context, …
Run Code Online (Sandbox Code Playgroud)

android gridview mediastore android-cursoradapter

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

在每个12位数字后面的字符串中添加<br>标记

我有一个来自HL7消息的字符串(实验室结果),需要
在每个12位数后添加换行符.

示例字符串:

1    NM    2951-2  S Sodium:  LN     144    mmol/L  mmol/L    135-145       F      201402150533      2    NM    2823-3  S Potassium:  LN     5.6    mmol/L  mmol/L    3.5-5.5    H      F      201402150533      3    NM    2075-0  S Chloride:  LN     103    mmol/L  mmol/L    95-110       F      201402150533
Run Code Online (Sandbox Code Playgroud)

由于12位数字符串是日期和时间戳,这将改变每个测试.

php hl7

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

updateStatusCallback没有在facebook的jQuery上定义

所以,我正在尝试将我的html与facebook集成,添加facebook登录,分享,那种东西,但我发现了一个问题.在这里搜索过,可以找到最适合的解决方案,但不是这个.

在我加载html后,它在JavaScript控制台上说:

Uncaught ReferenceError: updateStatusCallback is not defined.
Run Code Online (Sandbox Code Playgroud)

代码很小,所以我将它粘贴在这里.

<html>

<head>
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
    <link rel="stylesheet" href="css/style.css" />
    <title>Testes</title>
    <script>

      $(document).ready(function() {
        $.ajaxSetup({ cache: true });
        $.getScript('https://connect.facebook.net/en_UK/all.js', function(){
        FB.init({
        appId: '383086835168967',
        });     
      $('#loginbutton,#feedbutton').removeAttr('disabled');
      FB.getLoginStatus(updateStatusCallback); <-- Error ocurring on this line. More specicly, on updateStatusCallback. -->
  });
});

    </script>
</head>
</html>
Run Code Online (Sandbox Code Playgroud)

代码在这里找到

html javascript ajax jquery facebook

3
推荐指数
1
解决办法
3542
查看次数