我在Play商店发布了我的应用程序,但它不适用于平板电脑.我检查了Google Play商店中应用程序的功能,经过一些研究发现我的应用程序有一些Telephony功能,我认为这是有罪的一方.这是我的清单文件.
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.SEND_SMS" />
<!-- GCM requires a Google account. -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<!-- Keeps the processor from sleeping when a message is received. -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<permission
android:name=".permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name=".permission.C2D_MESSAGE" />
<!-- This app has permission to register and receive data message. -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!-- Keeps the device on vibrating mode when …Run Code Online (Sandbox Code Playgroud) 我正在尝试为自己创建一个文件格式,所以我正在为我的文件形成标题.要将已知长度的字符串写入ByteArray,我应该使用哪种方法,writeUTF()或writeUTFBytes().
从Flex 3语言参考,它告诉我writeUTF()预先设置字符串的长度并抛出RangeError,而writeUTFBytes()则不会.
任何建议都将不胜感激.
是否ViewPager必须是活动布局中唯一存在的对象?我正在尝试实现这样的事情:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/reader_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<android.support.v4.view.ViewPager
android:id="@+id/page_viewer"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Gallery
android:id="@+id/miniatures_gallery"
android:layout_width="match_parent"
android:layout_height="wrap_content" /></LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我应该在哪里有一个大的寻呼机滚动在顶部(我有它)和一个较小的画廊滚动下.这只显示了寻呼机,而不是画廊.有什么建议吗?
我已经注册了一个ContentObserver服务,onchange()当电话有更新,如电话或联系人更新时,我得到了功能.但我希望onchange()只在发生添加,更新或删除时才调用该函数.但我不希望呼叫是传入还是传出.那么有谁能告诉我URI我可以注册哪些contentObserver?我的代码在这里
getContentResolver().registerContentObserver(ContactsContract.Contacts.CONTENT_URI, true,new Contact_change());
Run Code Online (Sandbox Code Playgroud)
和Contact_change.java类一样
public class Contact_change extends ContentObserver{
public Contact_service() {
super(null);
}
@Override
public void onChange(boolean selfChange){
Log.i("contact_service","onchange");
Super.onChange(selfChange);
}
@Override
public boolean deliverSelfNotifications() {
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
我还有一个问题是,如果我在联系中进行了更改后停止服务,那么也会onchange()调用函数.那我怎么能阻止它或不注册contentobserver.
所述的充气方法LayoutInflater抽象类具有作为取充气方法的第二个参数ViewGroup根.从文档中,它被称为"可选视图,作为生成的层次结构的父级".
有人可以举例说明如何使用这个参数吗?那你会放在那里?A ViewGroup可以是任何类型的布局LinearLayout.
我还不太明白如何处理这个参数.如果您正在膨胀的视图不是此处输入的布局的一部分,那么它将给出错误.不明白它的目的.
更多来自文档:
public View inflate (XmlPullParser parser, ViewGroup root)
Added in API level 1
Inflate a new view hierarchy from the specified xml node. Throws InflateException if there is an error.
出于性能原因,重要的是,视图通胀在很大程度上依赖于在构建时完成的XML文件的预处理.因此,目前还不能使用LayoutInflater有XmlPullParser过在运行时一个普通的XML文件.
参数解析器包含视图层次结构描述的XML dom节点.
root可选视图是生成的层次结构的父级.返回膨胀层次结构的根视图.如果提供了root,则这是根视图; 否则它是膨胀的XML文件的根.
鉴于此代码:
String replaced = "A".replaceAll(".*", "HI");
Run Code Online (Sandbox Code Playgroud)
为什么replaced包含字符串HIHI而不是HI我猜想的?由于使用模式^.*产量HI,它似乎与行的开头有关,但我没有理由这样做.
在Google Play控制台中,我收到以下异常跟踪.虽然我添加了反混淆文件,但行号显示为0.
java.lang.NullPointerException:
at com.ae.apps.common.managers.ContactManager.getContactIdFromAddress(ContactManager.java:0)
at com.ae.apps.messagecounter.utils.MessageCounterUtils.sortThisMap(MessageCounterUtils.java:0)
at <OR>.getMessageCountDegrees(MessageCounterUtils.java:0)
at <OR>.getContactMessageList(MessageCounterUtils.java:0)
at <OR>.convertAddressToContact(MessageCounterUtils.java:0)
at <OR>.getIndexFromDate(MessageCounterUtils.java:0)
at <OR>.getWeekStartDate(MessageCounterUtils.java:0)
at <OR>.getMessageLimitValue(MessageCounterUtils.java:0)
at <OR>.getCycleSentCount(MessageCounterUtils.java:0)
at com.ae.apps.messagecounter.activities.MainActivity$1.run(MainActivity.java:0)
at java.lang.Thread.run(Thread.java:818)
我不明白<OR>堆栈跟踪中的这些语句是什么.该ContactManager.getContactIdFromAddress()只从方法中调用MessageCounterUtils.convertAddressToContact().
如何正确理解这个堆栈跟踪?
我相信我已经在上面的方法中添加了必要的Null检查.
到目前为止,我已经用TabHost我的应用程序来创建3个选项卡.每个Tab都由一个Activity表示,我setContentView(R.layout.something)从XML文件中获取布局.所以3个标签,3个活动和3个XML文件.
现在我偶然发现了碎片,这是新的更好的方法,所以这是我的问题.
片段处理UI,因此创建由处理的3个片段FragmentPagerAdapter.在每个片段中,我通过XML文件创建内容.
但是我在哪里放置关于哪个按钮做什么的所有代码,从数据库读取或写入它等等.到目前为止,所有这些都是在每个Activity中加载的Tabhost.
我是否将所有代码放入onCreate()每个片段的等方法中,或者是否有更好更清洁的方法?
我可以使用以下代码安装存储在SD卡上的apk文件:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File("/mnt/sdcard/downloads/Sample.apk")), "application/vnd.android.package-archive");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
如何安装存储在assets文件夹中的apk文件?可能吗?
我有一个国家代码的手机号码列表,如"919638095998"号码.我已经提到了libphonenumber谷歌的例子,但首先我们需要传递国家2位数的代码,我最初不知道.那么我怎么知道这个数字来自哪个国家?
我还有一个解决方案,从手机号码手动提取代码,然后与国家代码进行比较.但这是一项长期任务,也会给我带来糟糕的表现.谁能提出正确的解决方案?
android ×8
java ×3
apache-flex ×1
contacts ×1
fragment ×1
google-play ×1
regex ×1
stack-trace ×1