在Eclipse Juno中创建新包时,将自动创建一个java文件(package-info.java).该文件有什么用?在另一个类中导入特定的类是否有用?
我想知道如何编辑Android操作系统源代码来强加新的权限.例如,我们拥有BLUETOOTH权限,如果设备提供了新的传感器,那么在应用程序级别使用清单条目为android rom中提供的新权限创建权限以便应用程序使用新传感器.
有人知道在AOSP源代码中如何在操作系统级别创建新的权限?
我认为如果我们修改了android源代码来添加新的权限,我们必须编译我们的自定义SDK以便在应用程序开发中使用权限,否则现有的SDK会给出编译时错误,因为它不会识别我们的自定义权限...
任何想法,想法高度赞赏.
以下哪三个功能更有效;
public String getmConnectedDeviceName1() {
if(null != mServerDevice) {
return mServerDevice.getName();
}
else {
return null;
}
}
public String getmConnectedDeviceName2() {
return mServerDevice == null ? null : mServerDevice.getName();
}
public String getmConnectedDeviceName3() {
try{
return mServerDevice.getName();
}
catch(NullPointerException e) {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
请回复具体可接受的逻辑.
我最近开始考虑为我的Android设备开发应用程序.让我感兴趣的是我正在玩一些arduinos有一个好主意,让他们与我的手机通信,就像我在arduino本身测量的任何值的接口.现在我可以采取简单的方法,并使用公共资源来实现这一目标,但没有那么多的学习方式,我希望它以我想要的方式.
现在我想我需要问的第一个问题是,多个片段/单个活动是否是我完成此任务的最佳方式?基本上,我希望1连接到arduino,拉出所有值,但根据我选择的"标签",我希望某些值显示某些方式.我决定让每个标签成为不同的片段,只是以不同的方式显示值.就像我说的,我刚刚开始Android开发经验,所以没有多少基础上的这个选择.
因此,我要注意这个多片段的想法:
所以基本上我的onMenuItemSelect看起来像这样.
FragmentTransaction FT = getFragmentManager.beginTransaction();
switch(position){
case 1:
FT.replace(R.id.fragment_container, new MyFragment()).commit();
break;
case 2:
FT.replace(R.id.fragment_container, new MySecondFragment()).commit();
break;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码工作,它做了我想要的没有任何问题.我不是很喜欢这个,因为对于我想要添加的每个片段,我需要为交换机添加一个新的案例.此外,每次都会实例化一个新片段,即使已经创建了一个片段.那是问题吗?
我遇到的最大问题是它不是最容易扩展的.对于2-3个碎片,这不是处理它的最糟糕方式(在我看来).我希望能够拥有我想要的尽可能多的片段而没有针对交换机中每个人的个别情况.所以我所做的是创建了一个fragmentList来保存每个片段的单个实例.
List<Fragment> fragmentList;
private void populateFragmentList();{
fragmentList = new ArrayList<Fragment>();
fragmentList.add(new HomeFrag());
fragmentList.add(new BluetoothFragment());
fragmentList.add(new USBFragment());
fragmentList.add(new RCInfoFragment());
fragmentList.add(new ControllerFragment());
fragmentList.add(new FingerCordsFrag());
}
public void onMenuItemSelect(int position, int curPosition){
if(fragmentList.get(position).isAdded()){
getFragmentManager().beginTransaction().show(fragmentList.get(postition))
.hide(fragmentList.get(curPosition)).commit();
}
else
getFragmentManager().beginTransaction().add(R.id.fragment_container, fragmentList.get(position)).show(fragmentList.get(position)).hide(fragmentList.get(curPosition)).commit();
}
Run Code Online (Sandbox Code Playgroud)
这种方法也奏效了.我可以让它显示我的所有片段,而不必每次都重新实例化每个片段.我相信这可以做我想做的事情,它可以很好地扩展(比交换机/情况IMO更好).我现在遇到的问题是,当我改变方向时,一切都变得疯狂.到目前为止,我只是测试肖像模式,当我在其他方向选择它时,我无法查看任何片段.我可以在任何一个方向启动它,它可以工作,但是当我在运行期间更改它时,我只能看到我改变方向时打开的一个片段.
现在,正在调用每个片段"onCreateView",只是显示没有显示.我相信我已经缩小到它不会附加到从方向改变创建的新活动.无论如何,我可以重新附加已经创建的片段到新活动.
总之,我的问题是:
感谢您的时间.
*必须动态输入所有这些代码,因为我出于某种原因无法正确地格式化我的C/P代码.
我想了解一些关于android studio的事实.如果我们compile 'com.android.support:appcompat-v7:24.1.1'在gradle文件中使用这样的 ,那么android studio如何/何时下载库并将其存储在哪里?
另外如何更改库下载的默认位置?
我试图在eclipse中构建Multidex apk,但无法成功.
我尝试了以下步骤,在Android应用程序中配置Multidex支持:
我仍然无法建立apk.
Android开发人员 也没有任何关于在eclipse中构建Multidex apk的文档,它只有gradle和Android Studio的文档.
我刚刚开始通过我的Android手机连接到嵌入式BT设备.它连接正常,但我正面临问题,当我没有正确断开连接.我的意思是先关闭套接字,然后打开任何i/o流.
但是当我在设备中突然关闭我的蓝牙时,我怎么知道蓝牙会断开连接.是否有任何方法可以在APP中随时接收蓝牙断开监听器.
有任何想法吗 ....?谢谢
mmSocket= device.createRfcommSocketToServiceRecord(uuidToTry);
try
{
mmSocket.connect();
}
catch (IOException e)
{
mmSocket.close();
}
Run Code Online (Sandbox Code Playgroud) 关于Android运行时权限的问题.AFAIK,android在运行时授予危险权限.我重置了手机,然后adb pull /data/system/users/0/runtime-permissions.xml,我发现android.ui.system已经授予了许多危险权限.任何人都可以告诉我它是怎么做的?
我正在尝试使用PdfRenderer,并且要求使用Zoom和scroll可用,但在Android PdfRenderer中不提供任何缩放和滚动支持,只有页面导航支持可用.
但我猜缩放和滚动支持可以实现,因为PdfRenderer使用位图来使用imageview显示内容.
如何使用Google PdfRenderer示例实现缩放和滚动支持?
PS:我正在使用Google提供的这个PdfRenderer示例,https://github.com/googlesamples/android-PdfRendererBasic
我在Android应用程序上遇到问题...它在我的设备上运行完美,但在开发者控制台上支持为0.
这将是我的AndroidManifest.xml.我检查它没有错误.
我不知道在哪里看.
有人能帮助我吗
<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="xxx.permission.C2D_MESSAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<permission
android:name="xxx.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-feature
android:name="android.hardware.camera"
android:required="false" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".activities.SplashActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".activities.MainActivity"
android:label="xxx"
android:screenOrientation="portrait">
</activity>
<activity
android:name=".activities.ProfileCropImageActivity"
android:screenOrientation="portrait" />
<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="xxx.gcm" />
</intent-filter>
</receiver>
<service
android:name="xxx.services.MyGcmListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" /> …Run Code Online (Sandbox Code Playgroud) android ×8
java ×3
eclipse ×2
ant ×1
google-play ×1
gradle ×1
kernel ×1
pdfrenderer ×1
performance ×1
permissions ×1