小编mal*_*he4的帖子

如何在Fragment中获取对LocationManager的引用

我有一个扩展Fragment的类并实现了LocationListener.当我写作

LocationManager myLocalManager =
(LocationManager)getSystemService(Context.LOCATION_SERVICE);
Run Code Online (Sandbox Code Playgroud)

我得到一个编译时错误,因为该方法getSystemService不是Fragment的方法.

我能做些什么来创造LocationManager

android fragment locationmanager

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

android dumpsys权限拒绝

我有一个应用程序,我在其中创建一个进程并调用dumpsys telephony.registry命令来获取有关移动网络状态的信息。

String[] cmds={"dumpsys telephony.registry"};
Process p = Runtime.getRuntime().exec(cmds [0]+"\n");
Run Code Online (Sandbox Code Playgroud)

然后我解析命令的结果。对于"ls"或其他命令它工作正常。对于 dupmsys 我得到Permission Denial: can't dump telephony.registry from pid-953, uid=10090. 对于dumpsys power或 其他 dumpsys 命令,我得到相同的错误结果。

我已经android.permission.DUMP按照此处的建议android Manifest 中设置了 DUMP 权限

我认为我这样做是正确的,因为 Android在这里提供了这个功能

我还完成了此处描述的步骤以强制 eclipse 允许我在清单中授予我的应用程序 DUMP 权限。

当我执行 dumpsys 命令时,我总是得到相同的结果

Permission Denial: can't dump telephony.registry from pid-953, uid=10090

难道我做错了什么?为什么 android 操作系统仍然拒绝我访问转储服务?

PS 我已经设置了最小 API 8,我正在运行 (ICS) API 15 的设备上测试应用程序

shell android dump

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

将asynctask的结果返回到片段

首先,关于我的项目的一些信息:

我有一个由几个片段组成的应用程序.(我有一个扩展FragmentActivity的类和另一个扩展FragmentPagerAdapter的类.)所以实际上我的代码在Fragments中运行.

我在其中一个片段中调用了一个asynctask进行一些计算.asyncTask是一个单独的文件,该类不在Fragment类中.

因此,1个文件是asynctask,另一个是fragmet(来自片段的变量不能直接由asynctask访问!!!).

我可以使用ProgressDialog显示asyncTask的结果.但是我希望能够将数据(asynctask的结果)返回给我片段中的变量.到目前为止我尝试过的是:

  1. 使用asyncatask.execute()中的get()

我试着这样做:

我使用了以下按钮单击后调用的代码.

mytask1 = new myAsyncTask(this);
        String result =mytask1.execute(value1).get();
Run Code Online (Sandbox Code Playgroud)

但是这会导致主线程卡住并等待asynctask完成.

2.使用loginSharePreferens

loginPreferences = getActivity().getSharedPreferences("loginPrefs", Context.MODE_PRIVATE);
            loginPrefsEditor = loginPreferences.edit();
            loginPrefsEditor.putString("result", result);
            loginPrefsEditor.commit();
Run Code Online (Sandbox Code Playgroud)

这给了我错误.

我也试过这个
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext() );

这与第二种方法类似.

4.我试图在我的片段中创建一个只设置值的方法,我试图在片段内调用它

MyFrragment1.this.setRestult(1); // is called in the onPostExecute of the asyncTask

public void setRestult(int result){
        this.test1=result; ///inside of the fragment
    }
Run Code Online (Sandbox Code Playgroud)

这给了我错误:"在范围内无法访问MyFragment1类型的封闭实例"

我不知道还有什么可以尝试的.有任何想法吗 ?

android android-asynctask android-fragments

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