我正在创建一个Android项目,我必须将android wearable智能手表作为游戏控制器,它可以向连接到该智能手表的手持设备上运行的游戏发送命令BLE(Bluetooth Low Energy).
我在可穿戴设备上设计了控制器垫,可以在控制器键盘的软按钮上发送一些硬编码文本到手持设备应用程序.问题是,我必须用手持设备上运行的游戏所期望的游戏命令格式替换该文本.并且,在手持设备上运行的应用程序可以通过可穿戴服务来收听文本.我知道,第三方游戏不会运行任何可穿戴服务,因此第三方游戏将如何接受/收听可穿戴智能手表发送的命令.
没有任何应用程序的代码片段,如何获得屏幕分辨率和屏幕长度.我怎么能找到该设备是ldpi,mdpi,hdpi还是xhdpi?
地图活动不显示地图,它显示为带有缩放控制按钮的白色屏幕.清单文件如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.demomap"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<permission
android:name="com.example.demomap.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.demomap.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.demomap.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyCTQZOcXFS3RpNSVe79HHN1xojat-2MbT4" />
</application>
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
</manifest>
Run Code Online (Sandbox Code Playgroud)
我的XmL文件像这样:
<?xml version="1.0" encoding="utf-8"?>
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
Run Code Online (Sandbox Code Playgroud)
Log Cat错误:
05-15 17:15:16.255: …Run Code Online (Sandbox Code Playgroud) 移动号码将由用户在我的Android应用程序的注册页面上以编辑文本输入.如何检查用户是否输入了他/她的手机号码?
我试过这个:
TelephonyManager tMgr =(TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE);
mPhoneNumber = tMgr.getLine1Number();
Run Code Online (Sandbox Code Playgroud)
并将此变量与edittext的文本进行比较.但是mPhoneNumber 在我的情况下返回NULL.还有其他选择吗?怎么解决这个?
任何帮助都会很明显.
我试过这个:检查源代码:
public class MainActivity extends Activity{
Button submit;
EditText contact;
String phNo;
ProgressDialog progress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
contact = (EditText)findViewById(R.id.mobileNumber);
submit = (Button) findViewById(R.id.button1);
submit.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
phNo = contact.getText().toString();
new CheckOwnMobileNumber().execute();
Toast.makeText(getApplicationContext(), phNo, Toast.LENGTH_LONG).show();
}
});
}
private class CheckOwnMobileNumber extends AsyncTask<String, Void, String>
{
@Override
protected void onPostExecute(String result)
{
// TODO Auto-generated method stub …Run Code Online (Sandbox Code Playgroud) 我有一个用户必须注册的Android应用程序.在发送注册时,我想从PlayStore(utm_source等)发送参数以了解来自哪个广告系列的用户.
所以我的想法是使用自己BroadcastReceiver的INSTALL_REFERRER,我将参数保存到文件中.当用户注册时,我将读取文件并发送内容.
所以我做了接收器:
public class CampaignBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String refferer = intent.getExtras().getString("referrer");
try {
FileOutputStream fos = context.openFileOutput("campaign", Context.MODE_PRIVATE);
fos.write(refferer.getBytes());
fos.close();
} catch (FileNotFoundException e) {
} catch (IOException e) {
}
new CampaignTrackingReceiver().onReceive(context, intent);
}
Run Code Online (Sandbox Code Playgroud)
并且,在AndroidManifest.xml中我使用:
<service android:name="com.google.analytics.tracking.android.CampaignTrackingService"/>
<receiver android:name=".receiver.CampaignBroadcastReceiver" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
当我使用谷歌的测试场景时,它可以工作,并调用我的BroadcastReceiver中的onReceive方法.
./adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n
mypackage/mypackage.receiver.CampaignBroadcastReceiver --es "referrer"
"utm_source%3Dtest%26utm_medium%3Dbanner%26utm_term%3Dmailstuff"
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试它时,PlayStore没有任何东西被称为.
有人知道如何从PlayStore应用程序中抓取广告系列参数吗?
我在xml文件中创建了浮动操作菜单,并在此浮动操作菜单下创建了动态浮动操作按钮.我在每个FAB上设置图像位图.在某些特定情况下,我必须删除浮动操作菜单下的所有按钮.但是在removeView()方法上,我正在Null Pointer Exception研究子对象,当它试图在onMeasure()方法中获得孩子的可见性时.下面是堆栈跟踪和我的代码.
java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View.getVisibility()' on a null object reference
at com.getbase.floatingactionbutton.FloatingActionsMenu.onMeasure(FloatingActionsMenu.java:224)
at android.view.View.measure(View.java:17565)
at android.widget.ScrollView.measureChildWithMargins(ScrollView.java:1263)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
at android.widget.ScrollView.onMeasure(ScrollView.java:337)
at android.view.View.measure(View.java:17565)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:727)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:463)
at android.view.View.measure(View.java:17565)
at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:940)
at android.view.View.measure(View.java:17565)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5537)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
at android.view.View.measure(View.java:17565)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:727)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:463)
at android.view.View.measure(View.java:17565)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5537)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
at android.view.View.measure(View.java:17565)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5537)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:436)
at android.support.v7.internal.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:124)
at android.view.View.measure(View.java:17565)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5537)
at …Run Code Online (Sandbox Code Playgroud) 我有活动A,我可以导航到 A->B->C->D
在 Activity D我有一个按钮,如果用户按下此按钮,它将转到 Activity A.在这里,我将创建一个新实例,用户可以在此处更新值.
我完成了活动,它将转到Activity D,来自Activity D用户按下并将来 .Back Button
D->C->B->AActivity A
我需要显示更新的值Activity A,如何更新"活动A"中的值?
我创建了一个透明活动A.在这里,我使用表面视图来播放视频.我能够触摸此活动背后的应用程序和活动A.但是当我点击另一个应用程序时,活动A进入后台并以不正确的方式关闭.如果您点击其他应用,我想让活动A始终保持在屏幕顶部.我试过很多旗帜,但没有人正常工作.如果想知道如何让活动窗口始终保持最佳状态?
请分享您的建议和想法.任何帮助将受到高度赞赏.
我正在实施Action Bar.我想要Action Bar SearchView像Flipkart应用程序的搜索字段区域中的2个按钮.

像上面的截图一样,我想要2个按钮,第一个用于语音搜索,另一个用于条形码扫描器,当点击搜索图标SearchView时Actionbar出现.我可以actionbar serahcview用搜索图标实现.但我有点困惑为什么语音搜索没有出现在我的应用程序中.看看我的源代码.
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
setSearchTextColour(searchView);
setCloseSearchIcon(searchView);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
return super.onPrepareOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.action_search:
return true;
default:
return super.onOptionsItemSelected(item);
}
}
private …Run Code Online (Sandbox Code Playgroud) 现在,以下是Firebase数据库控制台中的数据库层次结构.
我使用以下代码将数据输入firebase数据库.
public void createRecordInDB(PlaceListItem placeListItem)
{
mDB= FirebaseDatabase.getInstance().getReference();
mListItemRef = mDB.child("Places");
for(int i = 0; i < placeListItem.getResults().size(); i++) {
// Create new List Item at /listItem
String placeId = placeListItem.getResults().get(i).getPlaceId().toString();
String key = placeId;
PlaceDBModel placeDBModel = new PlaceDBModel();
placeDBModel.setPlaceName(placeListItem.getResults().get(i).getName());
placeDBModel.setVicinity(placeListItem.getResults().get(i).getVicinity());
placeDBModel.setLattitude(placeListItem.getResults().get(i).getGeometry().getLocation().getLat().toString());
placeDBModel.setLongitude(placeListItem.getResults().get(i).getGeometry().getLocation().getLng().toString());
placeDBModel.setPlaceID(placeId);
if(isItWorking(key))
placeDBModel.setWorkingOrNot("Working");
else
placeDBModel.setWorkingOrNot("Not Working");
HashMap<String, Object> result = new HashMap<>();
result.put(key, placeDBModel);
mListItemRef.updateChildren(result);
}
Run Code Online (Sandbox Code Playgroud)
看我第一次从Web服务加载数据时,我只需将所有数据输入firebase数据库.现在在我的应用程序的一个屏幕(单击按钮),我可以更新特定节点中的一些数据.现在当我再次回到上一个屏幕并从Web API加载数据时,它会将所有数据覆盖到firebase数据库中.我需要保持更改的值,就像按下按钮时一样.所以我想读取节点中的特定数据,如果它正在工作,则设置值"工作",否则"不工作".我希望这会澄清我的疑问.
android ×10
android-ble ×1
firebase ×1
google-maps ×1
google-play ×1
measurement ×1
searchview ×1
sms ×1
telephony ×1
wear-os ×1