小编r2D*_*Inc的帖子

清除并设置默认的主应用程序

Nova如何管理这个?我真的试图做同样的事情:为用户提供一个按钮来清除并选择他们的新默认启动器.

我可以获取默认的应用名称并显示它:

       private String getPrefered(Intent i) {
       PackageManager pm = this.getActivity().getPackageManager();
       final ResolveInfo mInfo = pm.resolveActivity(i, 0);
       return (String) pm.getApplicationLabel(mInfo.activityInfo.applicationInfo);
   }
Run Code Online (Sandbox Code Playgroud)

这里Intent i

Intent home = new Intent("android.intent.action.MAIN");
        home.addCategory("android.intent.category.HOME");
Run Code Online (Sandbox Code Playgroud)

然后我调用系统ResolveActivity,

private void makePrefered() {
       Intent selector = new Intent("android.intent.action.MAIN");
       selector.addCategory("android.intent.category.HOME");                          
       selector.setComponent(new ComponentName("android", "com.android.internal.app.ResolverActivity"));
       startActivity(selector);
   }
Run Code Online (Sandbox Code Playgroud)

选择器出现并正常运行,但它实际上并未设置或清除任何值.在调试时,似乎我错过了一些额外的东西?当我调用该makePrefered方法时,我收到以下日志消息,

I/ActivityManager(  602): START {act=android.intent.action.MAIN cat=[android.intent.category.HOME] cmp=android/com.android.internal.app.ResolverActivity u=0} from pid 22641
Run Code Online (Sandbox Code Playgroud)

当我使用Nova实现时,我看到了所有这些,

    I/PackageManager(  602): Result set changed, dropping preferred activity for Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 (has extras) } type null …
Run Code Online (Sandbox Code Playgroud)

java android launcher

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

如何在FragmentPagerAdapter中获取当前位置?

我有一个扩展FragmentPagerAdapter并利用ICS样式actionBar的适配器.此操作栏具有从当前所选页面获取输入的操作.

具体来说,我在操作栏中有一个截图图标,它获取当前页面的网址并显示该网址的所有屏幕截图.但是,我不知道如何检索当前选定的页面.

我怎样才能实现类似的东西

    public int getActivePage() {
       return position;
Run Code Online (Sandbox Code Playgroud)

我仍然在使用viewpager实现,所以我的代码仍然严重依赖于示例,所以忽略了混乱:P

问题区域标记如下.

public class ListFragmentViewPagerActivity extends FragmentActivity {
ArrayList<String> URLS;
ArrayList<String> TITLES;
BroadcastReceiver receiver;
String threadTitle = null;
public static String threadUrl = null;
String type = null;
String threadAuthor = null;
String ident = null;
boolean isFav = false;
String author = null;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.thread_view);

    Bundle extras = getIntent().getExtras();
    threadTitle = extras.getString("title");
    threadUrl = extras.getString("url");
    type = extras.getString("type");
    ident = extras.getString("ident");
    author = extras.getString("author");
    try …
Run Code Online (Sandbox Code Playgroud)

java android android-viewpager

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

Sms ContentObserver onChange()会多次触发

我知道这个问题已被多次询问,但没有人能够从我所看到的那里得到一个有效的答案.

我正在开发一个应用程序拦截短信,并根据发送#,弹出一个自定义提醒.我让它与广播接收器完美配合,但是如果用户安装了goSms,那么onReceive()方法永远不会被调用,因为goSms在它到达我的应用程序之前就会中止它.

为了解决这个问题,我尝试了一个关于content://sms/ 它的内容观察者工作得很好,但是它onChange()被调用两次,具有完全相同的参数.我试过检查时间戳,但它们是相同的,就像我设置的类型和其他所有参数一样.

从我所看到的情况来看,这是一个常见的问题,但不是我见过的任何一个问题.

    @Override
public void onChange(boolean selfChange) {
    super.onChange(selfChange);
    querySMS();
}

protected void querySMS() {
    Cursor cur = getContentResolver().query(u, null, null, null, null);
    cur.moveToNext(); // this will make it point to the first record, which is the last SMS sent
    String type = cur.getString(cur.getColumnIndex("type"));
    String body = cur.getString(cur.getColumnIndex("body")); //content of sms
    String add = cur.getString(cur.getColumnIndex("address")); //phone num
    if (type.equals("1")) {
        if (add.equals(Test.SENDER)) {              
            String[] bodys = body.split(" ", 7);
            if (bodys[0].equals("test")) { …
Run Code Online (Sandbox Code Playgroud)

java android contentobserver

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

长文本转到ICS的下一行,但不是GB和以下

我第一次注意到这是因为AlertDialogs将整个消息放在第一行,即使我指定了一个新行("\n").在ICS上它显示正确的方式,但对于我的生活,我无法让它在GB上工作.

最近我又碰到了它.我认为没有任何理由让它在ICS上工作正常但不在GB及以下.

示例项目

下面是一个带有textview,alertdialog和两个标准textview的示例项目.

https://github.com/T3hh4xx0r/Text-Example

编辑

这是我问的原始问题.似乎问题比我最初注意到的要多.

Android AlertDialog在某些设备上不显示整个setMessage

/编辑

这是我的意思的视觉例子.在此输入图像描述

即使专门为textView设置多行,文本仍然是一行,但下面有额外的空白行.

android textview android-4.0-ice-cream-sandwich

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

Check availability of hidden wifi network

Within an app I am trying to create, I want to check for the availability of a hidden WiFi SSID. Sadly, networks with hidden SSIDs dont show up in scans so I cant wait for scan results returned via WifiManager.SCAN_RESULTS_AVAILABLE_ACTION.

android.net.wifi.WifiManager.enableNetwork(int netId, boolean disableOthers)在为网络创建WifiConfig之后,我尝试使用它,以为如果网络能够连接,它将返回true,否则返回false,但是即使在我创建乱码的WifiConfig的情况下,它几乎总是返回true。

我只需要测试隐藏网络是否正在广播。我知道它的所有信息,包括SSID。

java networking android wifi

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

从(辅助功能)服务填写任何应用程序的EditText?

Lastpass如何管理这个?!

AccessibilityNodeInfo有一个setText()方法,但我觉得这是一个红色的鲱鱼,正如文档所述,

注意:无法从AccessibilityService调用.在传递给AccessibilityService之前,此类是不可变的.

另一位用户不久前问了一个类似的问题,但最近对LastPass的更新证明了这确实是可能的.

在AccessibilityNodeInfo中设置文本

java android accessibility lastpass

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

Android Wear检测"静音"

应用程序如何检查Android Wear设备的"静音"状态?

无论如何,所有卷似乎都是0.

Log.d("VOLUME - STREAM_SYSTEM", Integer.toString(audioManager.getStreamVolume(AudioManager.STREAM_SYSTEM)));
Log.d("VOLUME - STREAM_NOTIFICATION", Integer.toString(audioManager.getStreamVolume(AudioManager.STREAM_NOTIFICATION)));
Log.d("VOLUME - STREAM_RING", Integer.toString(audioManager.getStreamVolume(AudioManager.STREAM_RING)));
Run Code Online (Sandbox Code Playgroud)

给我

D/VOLUME - STREAM_SYSTEM(32598): 0
D/VOLUME - STREAM_NOTIFICATION(32598): 0
D/VOLUME - STREAM_RING(32598): 0
Run Code Online (Sandbox Code Playgroud)

java android wear-os

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

下载API <9中的文件

我刚刚意识到我的应用程序,有超过300名用户仍在使用Gingerbread下的Android版本,因为他们没有API 9(2.3)中引入的DownloadManager而遇到问题.是否有兼容库或我可以使用的东西,或者是我最好的只是使用asyncTask手动下载文件?

android android-2.2-froyo android-2.3-gingerbread

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

Android AsyncTask将文件下载为目录

我正在尝试下载一个文件,但它将其作为目录下载,我不知道是什么问题.使用ive的类我在其他项目中使用没有问题.

outfile是输出目录的完整路径,/ mnt/sdcard/file.ext

public class DownloadFile {
    String outfile;
    String zipfile;
    Context c;
    Notification notification;
    NotificationManager notificationManager;
    ProgressBar progressBar;
    private int progress = 10;
    public DownloadFile(String url, String out, String zip, Context ctx) {        
        c = ctx;
        zipfile = zip;
        outfile = out;

        notificationManager = (NotificationManager) c.getSystemService(
                c.NOTIFICATION_SERVICE);

        new Download().execute(url);
    }

    private class Download extends AsyncTask<String, Integer, String>{
        @Override
        protected String doInBackground(String... urls) {
            int count;
            try {
                URL url = new URL(urls[0]);
                URLConnection conexion = url.openConnection();
                conexion.connect();
                int lenghtOfFile …
Run Code Online (Sandbox Code Playgroud)

java android android-asynctask

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

使用java中的多个WHERE子句更新sql数据库

我有一个我需要更新的数据库条目.

这种方法显然不起作用,但它应该有助于解释我想要做什么.

public void updateEntry(String user, String message, String mentions, String og) {
    ContentValues args = new ContentValues();
    args.put(KEY_MESSAGE, message);
    args.put(KEY_MENTIONS, mentions);
    this.db.update(ENTRY_TABLE, args, ("message = ?", "username = "+user), new String[] {og});
}
Run Code Online (Sandbox Code Playgroud)

我需要更新"name"列和"message"列都匹配输入值的条目.

数据库具有多个具有相同用户的条目,并且可能具有多个具有相同消息但具有不同用户的条目,因此需要多个where子句.

如何在SQL查询中使用两个(或更多)where子句?

java sql database android

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