GVKun编程网logo

如何在Android应用程序中创建持久计数器变量?(如何在android应用程序中创建持久计数器变量表)

13

在这里,我们将给大家分享关于如何在Android应用程序中创建持久计数器变量?的知识,让您更了解如何在android应用程序中创建持久计数器变量表的本质,同时也会涉及到如何更有效地android-nd

在这里,我们将给大家分享关于如何在Android应用程序中创建持久计数器变量?的知识,让您更了解如何在android应用程序中创建持久计数器变量表的本质,同时也会涉及到如何更有效地android-ndk – 在Android应用程序中使用libusb:如何允许应用程序访问USB、java – 如何在Android应用程序中保存复选框状态、java – 如何在Android应用程序中显示图像、为什么它在Android应用程序中使用gmail登录时显示未注册的Android应用程序消息?的内容。

本文目录一览:

如何在Android应用程序中创建持久计数器变量?(如何在android应用程序中创建持久计数器变量表)

如何在Android应用程序中创建持久计数器变量?(如何在android应用程序中创建持久计数器变量表)

我刚开始.

每次我在模拟器上运行项目时,我都试图增加一个简单的计数器.

我想在strings.xml中添加一个整数类型的项会有所帮助,但那是最终的,无法修改.

基本上我只是在我的应用程序的第一个基本屏幕中显示:

开始:N其中N将是我从Eclipse启动项目的第N次.

我如何制作这样一个在应用程序启动和退出时保持不变的计数器?

得到它了:

SharedPreferences pref = getPreferences(MODE_PRIVATE);
    int tempN=pref.getInt("N",0);
    tempN++;
    SharedPreferences.Editor editor = pref.edit();
    editor.putInt("N",tempN);

    editor.commit();

    msgBox.setText("Started:"+tempN);

有一件事我还是不明白,当我调用pref.getInt(“N”,0)时,是键值对< N,0>自动创建?

解决方法

在您的主要活动onCreate()中:

SharedPreferences pref = this.getSharedPreferences();
int count = pref.getInt("your key",0) //0 is default value.
count++;

SharedPreferences.Editor edit = pref.edit();
edit.putInt("your key",count);
edit.commit();
// display current count

android-ndk – 在Android应用程序中使用libusb:如何允许应用程序访问USB

android-ndk – 在Android应用程序中使用libusb:如何允许应用程序访问USB

我想在我的 Android应用程序(java GUI native(C)core)中使用libusb.我已经编译了libusb并尝试调用它的函数,但libusb_open返回LIBUSB_ERROR_ACCESS.我想USB访问权限有问题,但我不知道如何解决这个问题.那么,这里有两个问题:
1)如何让libusb在root的Android 3.1设备上运行?
2)是否可以在无根,出厂默认设备上使用libusb?

提前致谢.

P. S.至于问题1,我已经为/ dev / bus / usb尝试了chmod 666,但它说“权限被拒绝”(请注意我的设备已植根).

P.P.S. mount usbfs none / proc / bus / usb -o devmode = 0666甚至没有执行,好像我拼错了一些东西(但我没有).

我知道可以让libusb在带有USB主机的root设备上运行,但我从来没有管理它,所以我不得不将应用限制在Android 3.1并使用USB API.

解决方法

在android中,你无法使用libusb直接打开usb设备(这是你来到的结论:).

为什么你不能打开?

您需要获得Android系统(!= Kernel)的许可才能打开设备.

用Java做:

当您请求时,会向用户显示一个弹出窗口以接受或拒绝.
所以你需要在java中打开设备,并使用java解压缩fd并传递给libusb,以便它可以与设备通信.

现在libusb将如何从fd构建句柄?

更新:我维护了针对Android修改的libusb版本(有更多修复 – 在Android 5.1及更低版本上测试/工作).见https://gitlab.com/madresistor/libusb/blob/android/README

OLD LINK(DEAD LINK)这里的解决方案:
https://github.com/martinmarinov/rtl_tcp_andro-/blob/master/jni/libusb-andro/libusb/core.c#L993

java – 如何在Android应用程序中保存复选框状态

java – 如何在Android应用程序中保存复选框状态

我有这个带有一个简单复选框的应用程序,当用户按下它时,它会为build.prop添加一行,但是当我退出应用程序时,复选框被重置,是否有办法通过添加示例代码来防止这种情况你的帖子,因为我仍然是Android应用程序的新手.

MainActivity.java

package com.mythi.tests;

import java.io.DataOutputStream;
import java.io.IOException;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedchangelistener;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onoptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onoptionsItemSelected(item);
    }

    public void onCheckBoxClicked(View view) {
        // Is the view Now checked?
        boolean checked = ((CheckBox) view).isChecked();

        // Check which checkBox was clicked
        switch(view.getId()) {
            case R.id.checkBox1:
                if (checked){
                    try{
                        Process su = Runtime.getRuntime().exec("su");
                        DataOutputStream outputStream = new DataOutputStream(su.getoutputStream());
                        outputStream.writeBytes("cp /system/build.prop /system/build.prop.bak\n");
                        outputStream.writeBytes("echo 'persist.sys.scrollingcache=3' >> /system/build.prop\n");
                        outputStream.flush();

                        outputStream.writeBytes("exit\n");
                        outputStream.flush();
                        su.waitFor();
                    }catch(IOException e){

                    }catch(InterruptedException e){

                    }
        }else{
            try{
                Process su = Runtime.getRuntime().exec("su");
                DataOutputStream outputStream = new DataOutputStream(su.getoutputStream());

                outputStream.writeBytes("rm -r /system/build.prop\n");
                outputStream.writeBytes("mv /system/build.prop.bak /system/build.prop\n");
                outputStream.flush();

                outputStream.writeBytes("exit\n");
                outputStream.flush();
                su.waitFor();
            }catch(IOException e){

            }catch(InterruptedException e){

            }   
            break;
        } 

       }

   }

}

activity_main.xml中

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.mythi.tests.MainActivity" >

    <CheckBox
        android:id="@+id/checkBox1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="169dp"
        android:onClick="onCheckBoxClicked"
        android:text="CheckBox" />

</RelativeLayout>

解决方法:

你在哪里使用getRuntime().exec()获得了这种非常奇怪的方法?这是一个使用SharedPreferences的简单工作代码示例.用这个替换整个switch语句:

switch(view.getId()) {
case R.id.checkBox1:
    PreferenceManager.getDefaultSharedPreferences(this).edit()
        .putBoolean("checkBox1", checked).commit();
    break;
}

在onCreate()里面添加:

CheckBox checkBox1 = (CheckBox) findViewById(R.id.checkBox1);
boolean checked = PreferenceManager.getDefaultSharedPreferences(this)
    .getBoolean("checkBox1", false);
checkBox1.setChecked(checked);

完成.

java – 如何在Android应用程序中显示图像

java – 如何在Android应用程序中显示图像

我想在我的Android应用程序中以特定大小显示Image.
我该怎么做?请指导我?
还有一件事我想从SD卡那里得到那张照片.
所以请帮助我.

提前致谢.

解决方法:

首先,您需要创建一个imageview.

ImageView imageView = new ImageView(getApplicationContext());

创建布局参数以在布局上添加imageview

LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

然后获取您的图像路径

String path = Environment.getExternalStorageDirectory() + "/your folder name/image_name.bmp";

在ImageView上设置图像

Bitmap image = BitmapFactory.decodeFile(path);
imageView.setimageBitmap(image);

获取要添加的布局

RelativeLayout rl = (RelativeLayout) findViewById(R.id.relativeLayout1);

将视图添加到布局中

rl.addView(imageView, lp);

为什么它在Android应用程序中使用gmail登录时显示未注册的Android应用程序消息?

为什么它在Android应用程序中使用gmail登录时显示未注册的Android应用程序消息?

在我的 Android应用程序中使用gmail登录时,它显示了一个带有消息的未注册Android应用程序的对话框,其中包含其他权限,而我只设置了ScopE gmail,但它在权限’未注册的Android应用程序’中显示了另外一个.

有人可以建议我们吗?

@H_301_10@解决方法
要使用gmail登录功能,您必须从Google Play服务API获取AppId.点击此链接获取一个: Setting Up Google Play Services

今天关于如何在Android应用程序中创建持久计数器变量?如何在android应用程序中创建持久计数器变量表的介绍到此结束,谢谢您的阅读,有关android-ndk – 在Android应用程序中使用libusb:如何允许应用程序访问USB、java – 如何在Android应用程序中保存复选框状态、java – 如何在Android应用程序中显示图像、为什么它在Android应用程序中使用gmail登录时显示未注册的Android应用程序消息?等更多相关知识的信息可以在本站进行查询。

本文标签: