小编use*_*854的帖子

在Android上,有没有办法禁用Spinner的长按行为?

默认的微调器行为是当它"关闭"时,长按它将"打开"它并显示下拉视图.我发现这种行为对用户来说可能是非常有问题的.例如,如果他们试图在屏幕上滚动某些内容,并碰巧"抓住"一个有微调器的地点,那么它会在一秒左右打开下拉视图而不是滚动,并且用户是基本上用手指放在其中一个下拉选项上(他们现在可能会意外按下).

所以,我想禁用那个长按行为,并且只在单击它时让旋转器"打开",而不是长按.那可能吗?

android spinner long-press

11
推荐指数
2
解决办法
1759
查看次数

如何获得我的Android应用程序的可怕WRITE_SECURE_SETTINGS权限?

我需要能够打开和关闭GPS接收器,并且需要WRITE_SECURE_SETTINGS才能访问安全设置.我已经搜索了很多,我看到的每个答案都说,系统/固件之外的任何应用程序都无法获得该认可.

然而,这完全是不真实的.市场上有几个应用程序正是我正在尝试的(关于GPS),但还有更多具有WRITE_SECURE_SETTINGS权限的应用程序.例如:

扩展控件

SwitchPro

配置流程

那么,怎么做呢?

permissions gps android

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

有没有办法检测Android手机是否支持呼叫记录中的语音邮件集成?

我的应用程序正在使用API 14及更高版本中提供的VoicemailContract功能,将语音邮件消息插入手机的通话记录中.但是,有些手机似乎禁用了该功能,即使在高于14的API版本中也是如此.三星Galaxy Note 2就是一个很好的例子.因此,当新的VM消息插入到数据库中时,它将不会显示在呼叫日志中(但这在大多数其他电话上都能正常工作).因此,似乎三星在某种程度上禁用了该手机上的功能,并且我希望能够在运行时检测到这一点,以便我可以在应用程序的设置中隐藏该选项(如果它不可用).

android voicemail

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

在Android中帮助PROXIMITY_SCREEN_OFF_WAKE_LOCK

我在我的应用程序中启用了接近唤醒锁,当接近传感器检测到某些东西时,它会关闭屏幕.但是当屏幕唤醒时出现问题 - 它会进入锁屏,而不是我的应用程序.无论屏幕关闭的时间如何,都会发生这种情况(即使传感器在几秒钟后被清除).这是我使用的代码:

int PROXIMITY_SCREEN_OFF_WAKE_LOCK = 32;    
mProximityWakeLock = pm.newWakeLock(PROXIMITY_SCREEN_OFF_WAKE_LOCK, LOG_TAG);
if(!mProximityWakeLock.isHeld()){
    mProximityWakeLock.acquire();
}
Run Code Online (Sandbox Code Playgroud)

有没有办法纠正这种行为?

android sensor proximity wakelock

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

Android:如何在我的APK中安装RW中的文件系统?(根源当然)

我正在尝试编写一个在运行时将某些内容复制到/ system分区的应用程序.我已经实现了通过请求SU权限以root身份运行终端命令的功能.我可以成功运行很多命令(在用SuperUser授予权限请求之后).但是,当我尝试将/ system重新安装为读/写时,没有任何反应.我没有收到错误或崩溃,并且命令看起来很好,但分区保持为只读.这是我正在运行的命令(Droid X):, mount -o rw,remount -t ext3 /dev/block/mmcblk1p21 /system如果我从终端运行相同的命令,它的工作正常.这是我的应用程序中执行root命令的代码:

String cmd = "mount -o rw,remount -t ext3 /dev/block/mmcblk1p21 /system";
Process p = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(p.getOutputStream());
os.writeBytes(cmd + "\n");          
os.writeBytes("exit\n");  
os.flush();
Run Code Online (Sandbox Code Playgroud)

然后我有一些代码检查stdout和stderr流,看看发生了什么.任何人都可以告诉我为什么这不起作用?

android mount system root

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

在Android API中调用私有(未发布)方法

我需要检查OS 2.0 - 2.3中当前连接的BT耳机(不仅仅是配对).在引入蓝牙耳机类的API版本11之前,此类功能不存在.但是在先前的API中已经存在一个名为BluetoothHeadset的类,但它不能公开访问.这是它的文档:http://www.kiwidoc.com/java/l/x/android/android/9/p/android.bluetooth/c/BluetoothHeadset.所以,我试图使用反射来调用"isConnected"方法,但我在反射时非常可怕,而且我收到了一个错误java.lang.IllegalArgumentException: object is not an instance of the class.

我得到了一个使用配对设备的列表BluetoothDevice.getBondedDevices(),我尝试isConnected()在每个设备上使用该方法.这是代码:

public boolean isBtDevConnected(BluetoothDevice btDev){
    boolean connected  = false;
    try {
        Class<?> BTHeadset = Class.forName("android.bluetooth.BluetoothHeadset");
        Method isConnected = BTHeadset.getMethod("isConnected", new Class[] {BluetoothDevice.class});
                connected = isConnected.invoke(BTHeadset, new Object[] {btDev});
            }
        }
    } catch (Exception e) {
        WriteToLog(e);
    }
    return connected;
}
Run Code Online (Sandbox Code Playgroud)

我在调用该方法的行上得到了异常,但我不确定我做错了什么.

reflection android bluetooth headset

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

如何从Android中的同步适配器服务访问已经运行的应用程序上下文?

我有一个由几个活动组成的应用程序,我使用应用程序上下文(从应用程序类中使用,并使其持久化)在所有活动之间共享数据和对象.我使用Application Class而不是后台服务有几个很好的理由,我不会在这里讨论.

我最近还为我的应用添加了自定义联系人同步适配器.它在相同的包下,在同一个APK中.因此,我将其设置为访问应用程序上下文,就像我的应用程序中的其他内容一样,使其可以访问所有共享数据和对象.但是,即使它(大多数情况下)有效,它也会创建一个新的Application Context实例.因此,我的应用程序基本上有两个独立的实例在运行,并且它们之间不共享数据.

我认为问题是我的应用程序永远不会启动同步服务,操作系统会这样做.我的所有其他活动都是由应用程序启动的,或者主活动在启动时访问Application Context,然后App Context控制其他所有活动.有没有办法让同步服务访问现有的应用程序上下文,而不是创建它的新实例?

这是我的应用程序的基本结构:

应用程序

package com.mycomany.myapp;    
public class MyApp extends Application{
    ...
}
Run Code Online (Sandbox Code Playgroud)

活动1

package com.mycomany.myapp;
public class MyActivity1 extends Activity{
    MyApp a;

    @Override
    public void onCreate(Bundle savedInstanceState){
        a = (MyApp) getApplicationContext();
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

SyncAdapterService

package com.mycomany.myapp;
public class SyncAdapterService extends Service {
    private static SyncAdapterImpl sSyncAdapter = null;
    private static final Object sSyncAdapterLock = new Object();
    private static ContentResolver mContentResolver = null;
    private static MyApp a;

    public SyncAdapterService() {
        super();
    }

    private static …
Run Code Online (Sandbox Code Playgroud)

service android sync

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

在Android(在JB上),如何向自定义丰富通知添加操作?

我一直在玩Jelly Bean中的新富notificaitons,并一切正常,当我成立了一个新的notificaiton使用模板如预期Notification.BigPictureStyle,Notification.BigTextStyleNotification.InboxStyle.我可以使用该Notification.Builder.addAction()方法,操作按钮显示在扩展通知的底部.但是当我尝试使用Notification.bigContentView创建一个cutom通知时,操作按钮永远不会显示.

只是为了澄清,如果我从未设置bigContentView,按钮确实会显示出来.但是只要该字段设置为自定义RemoteViews对象,按钮就会消失.

有没有人对为什么会这样做有任何想法?

notifications android android-4.2-jelly-bean

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

如何在 Android 中以编程方式向联系人添加电话号码?

我有一个可以添加和删除联系人的应用程序。如果现有联系人中存在现有值,则可以对其进行很好的修改。但我似乎无法在现有联系人中插入新值。例如,如果家庭电话号码有一个现有值,但工作电话号码没有,我尝试使用填充来添加值(cintactidValueworkNumber传入):

    ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
    ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
            .withValue(ContactsContract.Data.CONTACT_ID, idValue)
            .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
            .withValue(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_WORK)
.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, workNumber)
            .build());
    getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
Run Code Online (Sandbox Code Playgroud)

但我得到一个 NullPointerException:

java.lang.NullPointerException
    at com.android.providers.contacts.ContactsProvider2.insertData(ContactsProvider2.java:2604)
    at com.android.providers.contacts.ContactsProvider2.insertInTransaction(ContactsProvider2.java:2452)
    at com.android.providers.contacts.SQLiteContentProvider.insert(SQLiteContentProvider.java:106)
    at com.android.providers.contacts.ContactsProvider2.insert(ContactsProvider2.java:2256)
    at android.content.ContentProviderOperation.apply(ContentProviderOperation.java:214)
    at com.android.providers.contacts.SQLiteContentProvider.applyBatch(SQLiteContentProvider.java:216)
    at com.android.providers.contacts.ContactsProvider2.applyBatch(ContactsProvider2.java:2290)
    at android.content.ContentProvider$Transport.applyBatch(ContentProvider.java:217)
    at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:194)
    at android.os.Binder.execTransact(Binder.java:336)
    at dalvik.system.NativeStart.run(Native Method)
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我我做错了什么吗?

android insert edit contacts

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

有没有办法在Android中找到HTTP请求和响应的完整大小(用于数据使用跟踪)?

我想跟踪我的应用程序的数据使用,但要做到这一点,我需要能够得到的全尺寸HttpUriRequestHttpResponse.简单地获取大小HttpEntity是不够的,因为请求和响应都传输了更多数据(标题,参数,传输的实际URL等).那么,有没有办法找到双向传输的全部数据?

谢谢.

java android http httpresponse httprequest

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